[英]Why does my calculator automatically answer “0” before i can put my sign in?
[英]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.