Java 调用方法不起作用
所以我有Java 调用方法不起作用,java,methods,Java,Methods,所以我有 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 C
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()时遇到了一个错误;说它找不到符号
public ComboLock() {
是一个构造函数,您正试图在中作为函数/方法访问它
int number1 = numbers.ComboLock;
是一个构造函数,您正试图在中作为函数/方法访问它
int number1 = numbers.ComboLock;
当您调用
ComboLock number=new ComboLock()时代码>,它实际上调用您创建的ComboLock()函数。它被称为构造函数,并且只与与类同名的函数一起工作。当您调用ComboLock numbers=new ComboLock()代码>,它实际上调用您创建的ComboLock()函数。它被称为构造函数,并且只与与类同名的函数一起工作
public 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;
}
public int getNumber1() {
return number1;
}
}
可以这样称呼:
ComboLock numbers = new ComboLock();
int number1 = numbers.getNumber1();
您正在尝试调用构造函数,而不是方法。作为一个构造函数,它不会返回值,所以在某个地方指定它的返回值是没有意义的
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();
我想你是有意这么做的:
int number1 = numbers.number1;
。。。无论如何,这都不起作用,因为number1
字段是私有的。我想你是想这样做的:
int number1 = numbers.number1;
。。。因为number1
字段是私有的,所以它无论如何都不起作用