当我使用if语句时,为什么我的代码不能提供正确的答案?
问题描述:
这是包含main的类。当我使用if语句时,为什么我的代码不能提供正确的答案?
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语句和我直接赋值来命名,它的工作原理..
我只想随机分配属性的对象。
答
你只是错过了你的构造一个this
:
public RandomTest2(String name) {
this.name = name;
}
没有它,你只是分配name
参数本身。
不用担心,这得到每一个Java编码至少一次;-)
答
而不是name =名称如下图所示
RandomTest2(String name) {
name = name;
}
此功能尝试
this.name=name;
答
:
public RandomTest2(String name) {
name = name;
}
编译器明白你为RandomTest2上的name变量指定了名称。因此,将其更改为this.name = name.
答
类RandomTest2 - >构造方法 - > this.name =名称
不,它从来没有得到我。 (然后,我再次编程了35年,并在学习Java之前一直在维护一个编译器,所以对我来说这显然不可行)。 – ajb
@ajb bravoooooo –