2013-03-21 75 views
0

所以Ive得到調用不工作

public static void main(String[] args) { 

    System.out.println("Trying to open lock"); 
    System.out.println("Trying "); 
    ComboLock numbers = new ComboLock(); 
    int number1 = numbers.ComboLock; 
    ` 

和IM試圖調用ComboLock從這個類

public class ComboLock { 

private int number1, number2, number3; 
private boolean locked; 
public static final int SMALLEST_NUMBER = 1; 
public static final int LARGEST_NUMBER = 39; 

public ComboLock() { 
    locked = true; 
    Random rand = new Random(); 
    number1 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
    number2 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
    number3 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
} 

的方法和即時得到哪裏我嘗試讓number1.ComboLock錯誤正確() ;說,它不能找到符號

回答

3
public ComboLock() { 

是一個構造函數和您試圖訪問其作爲函數/法

int number1 = numbers.ComboLock; 
0

當你調用ComboLock numbers = new ComboLock();,它實際上調用ComboLock()函數你創建。它被稱爲構造函數,它僅適用於與該類具有相同名稱的函數。

0
public ComboLock() { 

是構造函數並且是靜態的,您不能使用對象調用它。

0

您試圖調用構造函數,而不是方法。作爲一個構造函數,它不會返回值,所以在某處指定它的返回值沒有意義。

public class ComboLock { 

    private int number1, number2, number3; 
    private boolean locked; 
    public static final int SMALLEST_NUMBER = 1; 
    public static final int LARGEST_NUMBER = 39; 

    public ComboLock() { 
     locked = true; 
     Random rand = new Random(); 
     number1 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
     number2 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
     number3 = rand.nextInt(LARGEST_NUMBER - SMALLEST_NUMBER) + SMALLEST_NUMBER; 
    } 
    public int getNumber1() { 
     return number1; 
    } 
} 

這樣稱呼它:

ComboLock numbers = new ComboLock(); 
int number1 = numbers.getNumber1(); 
0

我想你的意思是這樣:

int number1 = numbers.number1; 

...這無論如何是行不通的,因爲number1領域是私人的。