2014-12-17 5 views
0

안녕하세요, 저는 질문이 있습니다. 나는자바의 메소드에 객체 배열 전달하기

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,)'이 불완전합니다. 또한 Java 클래스 계층의 루트에있는 클래스의 이름이기 때문에 Object라는 클래스를 갖는 것이 실제로는 매우 나쁜 생각 일 수 있습니다. 코드를 읽을 때 정말 혼란 스러울 수 있습니다. –

답변

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. 
} 

참고 :

당신이 정의 된 클래스 내부의 정적 함수를 호출하지 않습니다, 당신은 전 클래스의 이름으로 호출 할 필요가 classes 대문자로 시작하는 이름 (소문자로 시작하는 이름이 인스턴스에 제공됨).

+0

내 친구를 대단히 감사합니다. 그래서 모든 정적 방법에 대해, 먼저 오른쪽에있는 클래스를 입력해야합니까? – InFamouStarlight

+0

다른 클래스에서 함수를 호출하는 경우에만 @InFamouStarlight. – Arnaud

+0

도움 주셔서 감사합니다 !! – InFamouStarlight