我正在练习对象&构造函数并最终生成此代码,但是当我运行它时,String colorGenerated出现为null,因此显示为“生成的颜色为:null”。我试图改变并修复它但未能这样做。谢谢你的阅读。
public class Color{
int colorValue;
String colorGenerated1;
public Color(String colorGenerated){
System.out.println("The Color Generated was: " + colorGenerated);
}
public void randomizeColor(){
Random randomColor= new Random();
colorValue = randomColor.nextInt(3);
}
public int getColor(){
if(colorValue == 1){
colorGenerated1 = "Red";
} else if(colorValue == 2){
colorGenerated1 = "Blue";
} else if(colorValue == 3){
colorGenerated1 = "Yellow";
}
return colorValue;
}
public static void main(String[] args){
Color color = new Color("colorGenerated");
color.randomizeColor();
color.getColor();
}
}
答案 0 :(得分:0)
您正在使用随机颜色打印之前生成的颜色。而且你应该只获得Random
一次(而不是每个方法调用一次)。我会做类似
public class Color {
private static Random random = new Random();
int colorValue = random.nextInt(3) + 1; // nextInt excludes 3 and includes 0
@Override
public String toString() {
if (colorValue == 1) {
return "Red";
} else if (colorValue == 2) {
return "Blue";
} else if (colorValue == 3) {
return "Yellow";
}
return "Unknown";
}
public static void main(String[] args) {
Color color = new Color();
System.out.println("The Color Generated was: " + color);
}
}
答案 1 :(得分:0)
首先,您创建Color类的实例。实际上你运行构造函数。参数是一个字符串。那就出现了。 之后,您初始化colorgenerated。你必须在color.getColor()之后显示colorgenerated,因为它实际上是初始化的。
答案 2 :(得分:-1)
请a read。您的代码正常工作正常。