这是包含main的类。
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
String name;
Random r = new Random();
int number = 1 + r.nextInt(3);
System.out.println(number);
if (number == 1) {
name = "Kobe";
}
else if (number == 2) {
name = "Mamba";
}
else {
name = "lol";
}
RandomTest2 object = new RandomTest2(name);
System.out.println(object.toString());
}
}
此类包含其他方法。
public class RandomTest2 {
private String name;
public RandomTest2(String name) {
name = name;
}
public String getName() {
return name;
}
public String toString() {
return getName();
}
}
如果我删除了If语句并且我直接为name指定了一个值,它就可以工作..
我只想随意为对象分配属性。
答案 0 :(得分:3)
你刚刚错过了构造函数中的this
:
public RandomTest2(String name) {
this.name = name;
}
没有它,您只需将name
参数分配给自己。
不用担心,这会让每个Java编码器至少获得一次; - )
答案 1 :(得分:2)
而不是name = name,如下所示
RandomTest2(String name) {
name = name;
}
尝试
this.name=name;
答案 2 :(得分:1)
关于此功能:
public RandomTest2(String name) {
name = name;
}
编译器理解您为自己分配名称而不是RandomTest2上的名称变量。所以将其更改为this.name = name.
答案 3 :(得分:0)
类RandomTest2 - >构造方法 - > this.name = name