2013-04-07 3 views
3

나는 숙제에 약간의 문제가있어 내가 하나를 얻을 수 있다면 설명을 원합니다.클래스의 클래스 내에서 자바

현재 데이터 구조 클래스에 있고 배수가있는 경우 가장 왼쪽 숫자와 가장 오른쪽 숫자를 찾기 위해 숫자 쌍을 찾는 수정 된 BinarySearch를 수행하는 할당 작업을하고 있습니다. 위치. 지금 당장 실행해야 할 큰 문제는 선생님이 Pair 클래스를 사용하여 두 개의 int를 반환하기를 바랍니다. 필자는 메인 파일 내에 Pair 클래스를 만들었고 누군가 내가 올바른 방향으로 나를 가리킬 수 있는지 궁금해했다. 나는 내가해야 할 일과 그 이유를 이해하는 데 도움이되는 대답을 찾고있는 것이 아닙니다. 이 코드는 간다 내가 지금까지 가지고 무엇을 :

import java.util.*; 
import java.io.*; 

public class Test_BinarySearchDup{ 

private class Pair{ 
    public int left; 
    public int right; 
} 

public static void main(String[] args) throws IOException{ 
    String file = args[0]; 
    int x = Integer.parseInt(args[1]); 
    Scanner fin = new Scanner(new FileReader(file)); 
    int count = 0; 
    while(fin.hasNext()){ 
     fin.nextInt(); 
     count++; 
    } 
    fin.close(); 

    int[] array = new int[count]; 

    fin = new Scanner(new FileReader(file)); 
    while(fin.hasNext()){ 
     for(int i = 0; i < array.length; i++){ 
      array[i] = fin.nextInt(); 
     } 
    } 
    fin.close(); 

    BinarySearchDup(array, x); 
} 

public static Pair BinarySearchDup(int[] A, int x){ 
    int low = 0, high = A.length - 1, mid = (low + high)/2; 
    while(low <= high){ 
     mid = (low + high)/2; 
     if(A[mid] == x) 
      return Pair(mid); 
     else if(A[mid] < x) 
      low = mid + 1; 
     else 
      high = mid - 1; 
    } 
} 
} 

내가 명령 줄을 통해 인수를 보내고을하기 때문에 파일 이름은 data.txt로하고, 예를 들어 INT X가 나는이 생각 (10)입니다 내가 최근에 클래스 (쌍)를 정의한 곳에서했던 LinkedList 할당과 같을 것입니다. 그런 다음 데이터로 int를 설정하고 가져옵니다. 나는 원래했다 :

private class Pair(int data){ 
    this.data = data; 
} 

하지만이 작동하지 왜 내가 그것을 원하는 것처럼 나는에 관해서는 확실하지 않다. 어쨌든 그것이 내가 가진 질문이고 이것을 이해하는 데 도움이 될 것입니다.

+0

지금 제대로 작동하고있어 조금만 청소하면됩니다. 나중에 내가 한 코드를 게시 할 것입니다. – kevorski

답변

4

내부 클래스는 정적이 아니므로 객체에 바인딩되어야합니다. 주된 방법은 정적입니다. 정적 메서드에서 비 정적 멤버를 호출 할 수 없습니다. 내부 클래스를 정적으로 표시하십시오.

private static class Pair(int data) 
관련 문제