2012-09-13 2 views
-1

주 클래스에서 메서드를 호출 할 때 도움이 필요합니다.void java에서 정적 메서드를 호출 할 때 오류가 발생했습니다.

메서드를 호출해야하므로 처리 할 개체를 만들었습니다. 내 주요 방법을 인용 이하

public static void main(String[] args) { 
     // TODO code application logic here 
     SLRatio sl= new SLRatio(); 
     sl.clustering(apa); 
} 

여기에 내가

public class SLRatio { 

public static String [][]clustering(String[][]apa) { 

    System.out.println("Cluster 1"); 

    int a = apa.length/3; 
    String [][] cluster1=new String [a][apa[0].length]; 

    for (int i =0; i<a; i++) { 
     for (int j=0;j<apa[0].length;j++) { 
     cluster1 [i][j] = apa[i][j]; 
     } 
    } 

    for (int b = 0; b < cluster1.length; b++) { 
     for (int c = 0; c < cluster1[0].length; c++) { 
     System.out.print(cluster1[b][c] + "\t"); 
     } 

     System.out.println("");   
    } 

    System.out.println("\n"); 

    return cluster1; 

} 
} 

를 호출하는 데 필요한 방법이고 나는 오류 메시지를 받았습니다 : 은 "정적 메서드 클러스터링을 액세스, 기호를 찾을 수 없습니다"

해결하려면 어떻게해야합니까? 구문을 변경하려고했지만 작동하지 않았습니다.
정말 고마워요.

+0

[태그 : cluster-analysis] 태그는 질문과 관련이 없으므로 제거했습니다. –

답변

2

당신이 SLRatio

참고 방법 Allocation()를 정의하지 않았다가 : 정적 메서드는 클래스 이름으로 호출 할 필요가 정적 메서드 인 경우, 그렇지

+1

+1 "오류 메시지"오류 뒤에는 별도의 경고가있는 것 같습니다. –

+0

나는 또한 그런 식으로 시도했지만 여전히 오류가 있습니다. Allocation() 메서드에 문제가 없다면 올바르게 작동합니다. – charcoalite

+0

질문에 업데이트 된 코드를 게시하십시오. –

1

(인스턴스 메소드와 정적 사이 confision을 피하기 위해) 인스턴스를 통해 호출해야합니다.

SLRatio .clustering(...); 

으로 충분해야합니다.

그리고 Allocation 메서드를 구현하는 것을 잊어 버린 것 같습니다.

또 다른 제안은 Java 명명 규칙이며 메소드 이름은 작은 대문자로 시작합니다.

+0

이 방법을 시도했지만 오류 메시지가 "기호를 찾을 수 없습니다"라는 메시지가 나타납니다. – charcoalite

+0

두 가지 메서드 호출을 모두 제거하는 것이 좋습니다. 먼저 클러스터 메소드 호출 만 추가하고 작동하는지 확인하십시오. SLRatio 클래스에 메서드 이름 Allocation이 없기 때문에 할당이 실패합니다. – kosa

+0

예 저는 그 방법으로 실행했고 작동합니다. 메서드 할당에는 문제가 없습니다. 또한 할당 호출 메소드를 비활성화했지만 동일한 오류가 발생합니다. 나는 또한 이미 코드를 "sl.clustering (apa)"로 변경했다. 하지만 여전히 오류가 발생합니다. – charcoalite

0

적절하지 않으면 static을 사용하지 마십시오.

이것은 일컬어 eclipse가 변수와 메소드를 만들 것을 제안하기 때문에 인기있는 프로그래밍 오류입니다. 액세스 할 수없는 경우 static입니다. 그러나 대개 이것은 올바른 해결책이 아닙니다. 컴파일 문제를 수정하는 동안 종종 응용 프로그램 논리가 손상됩니다.

지금은 apa의 유형이 String[][]이지만 String[] 매개 변수를 전달한 것일 수 있습니다. clustering(String[] args)이 없기 때문에 컴파일 할 수 없습니다.

진지하게, 당신은 더 많은 Java 기초를 배워야합니다. 어쩌면 입니다.

관련 문제