Simpe Objects&课程问题

时间:2016-04-08 05:32:46

标签: java

我正在练习对象&构造函数并最终生成此代码,但是当我运行它时,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();
    }
}

3 个答案:

答案 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。您的代码正常工作正常。

  • 您在构造函数中添加了print语句&你首先初始化一个对象。
  • 然后你添加了随机化颜色和代码的代码。没有打印颜色的方法。
  • 因此,当您调用构造函数时,您将只获得null。