有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

这是包含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赋值,它就会工作

我只想随机分配属性给对象


共 (3) 个答案

  1. # 1 楼答案

    类随机测试2->;构造函数方法->;这name=name

  2. # 2 楼答案

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

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

    没有它,您只需将name参数分配给自身

    不用担心,这会让每个Java程序员至少有一次机会;-)

  3. # 3 楼答案

    关于此功能:

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

    编译器需要理解的是,您为自己指定了名称,而不是为RandomTest2上的name变量指定名称。所以把它改成this.name = name.