0

だから私は得た

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;
    `

そして、このクラスから 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(); を作成しようとしているところでエラーが発生します。シンボルが見つからないと言って

4

5 に答える 5

3
public ComboLock() {

コンストラクターであり、関数/メソッドとしてアクセスしようとしています

int number1 = numbers.ComboLock;
于 2013-03-21T18:34:20.553 に答える
0

私はあなたがこれをするつもりだったと思います:

int number1 = numbers.number1;

number1...フィールドが非公開であるため、とにかく機能しません。

于 2013-03-21T18:35:53.593 に答える
0

を呼び出すとComboLock numbers = new ComboLock();、作成した ComboLock() 関数が実際に呼び出されます。これはコンストラクターと呼ばれ、クラスと同じ名前の関数でのみ機能します。

于 2013-03-21T18:34:46.637 に答える
0
public ComboLock() {

はコンストラクターで静的であるため、オブジェクトを使用して呼び出すことはできません。

于 2013-03-21T18:35:15.943 に答える
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();
于 2013-03-21T18:35:23.420 に答える