繁体   English   中英

使用if语句时,为什么我的代码没有给出正确的答案?

[英]Why does my code not put out the right answer when I use the if statement?

这是包含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分配一个值,则它将起作用。

我只想向对象随机分配属性。

您只是在构造函数中错过了一个this

public RandomTest2(String name) {
    this.name = name;
}

没有它,您只是将name参数分配给它自己。

不用担心,这会使每个Java编码器至少一次;-)

代替name = name如下所示

RandomTest2(String name) {
    name = name;
}

尝试

this.name=name;

关于此功能:

public RandomTest2(String name) {
    name = name;
}

编译器了解到,您不是为RandomTest2上的name变量分配名称,而是为其本身分配名称。 因此将其更改为this.name = name.

类RandomTest2->构造方法-> this.name = name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM