簡體   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