如何制作预设的唯一类对象

时间:2018-01-28 07:37:05

标签: java class oop object colors

因此,当您使用图形并且需要定义颜色时,可以使用3个int值将颜色写为RGB值,或者也可以只键入Color newColor = Color.Red < / strong>或Color newColor = Color.Blue 将其定义为预设的纯色。

我想知道是否可以做这样的事情以及如何在我自己创建的课程中进行这样做,这样我就可以只使用那个对象来定义事物或仅使用作为参数。

就像我创建一个Person类然后在另一个类中我有一个使用Person作为参数的方法,我只能说 Person.Teacher ,它会知道一般的预设变量那个人。很抱歉,如果这是一个糟糕的例子,但是我将如何将该信息存储在人员类

3 个答案:

答案 0 :(得分:2)

我们可以通过查看java.awt.Color.red的定义来了解它们是如何做到的:

public final static Color red       = new Color(255, 0, 0);

所以你也可以定义这样的人。你可以在Person课程中写下这个。

public final static Person TEACHER = new Person("John Smith", 29);

需要注意的一点是类型必须是 immutable 才能使其正常工作,否则你可以这样做:

Person.TEACHER.setAge(100);

它破坏了这种模式的全部要点 - 具有Person的常数值。

答案 1 :(得分:1)

我们可以将枚举用于所需目的。 示例颜色枚举可以是:

public enum Colour {

    RED(255,0,0),
    BLUE(255,255,0);

    private int a;
    private int b;
    private int c;

    private Colour(int a, int b, int c){
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public int getA() {
        return a;
    }

    public int getB() {
        return b;
    }

    public int getC() {
        return c;
    }

}

稍后,您可以将emun用作:

Colour colour = Colour.RED;

答案 2 :(得分:-1)

试过并测试过。 100%工作并输出颜色。无需“扩展”颜色。使用intellij,alt+enter,完成。

public class Application {

    public static void main(String[] args) {
        Color thisWorks = RGBColors.RED.getColor();
        System.out.println(thisWorks);
    }


}
enum RGBColors{
    RED(new Color(255, 0, 0)),
    GREEN(new Color(0, 255, 0)),
    BLUE(new Color(0, 0, 255));

    Color color;

    Color getColor(){
        return color;
    }

    RGBColors(Color a) {
        color = a;
        //do something
    }
}