2014-12-17 2 views
0

Привет, ребята, у меня есть вопрос. У меня есть ошибки, когда я пытаюсь передать массив объекта методу Моего классаПередача массива объектов методу в java

public class Object { 
    private int x1; 

    public Object(int a ,){ 
      this.x1=a; 
    } 

public class staticMethods{ 
    public static void findMaxPos(Object[] name){ 
      max = name[0] 
      pos = 0 
      for(int i=1; i<name.length ; i++){ 
       if (name[i] >max){ 
        max = name[i]; 
        pos = i; 
        } 
       } 
     } 
public class Example{ 

public static void main(String[] args) { 
Object[] yp = new Object2[3]; 
    yp[0] = new Object(5); 
    yp[1] = new Object(6); 
    yp[2] = new Object(8); 
findMaxPos(type)// i get an error of the method findMaxPos is undefined for the type Example 
    } 

Так извините за длинный пост ...

+2

Вам нужно сделать 'staticMethods.findMaxPos' –

+0

классы находятся в другом файле в той же папке, о которой я забыл упомянуть – InFamouStarlight

+4

Ну, для начала ваш код даже не компилируется, например' public Object (int a,) 'является неполным. Также, вероятно, очень плохая идея иметь класс с именем Object, так как это также имя класса в корне иерархии классов Java. При чтении кода это может стать очень запутанным. –

ответ

1

findMaxPos является статическим методом вашего класса STATICMETHOD.

Когда вы не вызывая статическую функцию внутри класса, где она определена, вам нужно вызвать его с именем класса до:

public static void main(String[] args) { 
    Object[] type = new Object2[3]; 
    yp[0] = new Object(5); 
    yp[1] = new Object(6); 
    yp[2] = new Object(8); 
    staticMethods.findMaxPos(type);// This should be ok. 
} 

Обратите внимание, что в Java, конвенция должна дать классы, имена которых начинаются с прописной буквы (имена, начинающиеся с строчных букв, присваиваются экземплярам).

+0

Спасибо, мой друг, очень много .. так что для каждого статического метода мне нужно сначала ввести класс, в котором они находятся в правильном направлении? – InFamouStarlight

+0

@InFamouStarlight, только если вы вызываете функцию из другого класса. – Arnaud

+0

Благодарим за помощь! – InFamouStarlight

Смежные вопросы