java - 这个东西在Java中叫什么?

标签 java oop object inheritance immutability

Google 今天不太友好,我正在研究一些我过去没有使用过的 OOP 技术。

基本上,我注意到一些库具有带有预设选择的变量,例如new Website(Websites.STACKOVERFLOW)。当你有这样明显不可变的值时,这叫什么?如果我想使用 Colours.REDColours.GREEN 创建自己的一个怎么办?

我希望你能告诉我这叫什么,以便我继续我的研究!谢谢。

编辑:我不会将其标记为重复,因为我不知道如何准确描述我正在寻找的内容 - 我认为其他人很可能有类似的困难并且可能会发现这很有用。如果我错了,那也没关系。

最佳答案

它们被称为枚举。详细信息可以查看here

它们定义为:

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}

并用作:

public class EnumTest {
    Day day;

    public EnumTest(Day day) {
        this.day = day;
    }

    public void tellItLikeItIs() {
        switch (day) {
            case MONDAY:
                System.out.println("Mondays are bad.");
                break;

            case FRIDAY:
                System.out.println("Fridays are better.");
                break;

            case SATURDAY: case SUNDAY:
                System.out.println("Weekends are best.");
                break;

            default:
                System.out.println("Midweek days are so-so.");
                break;
        }
    }

    public static void main(String[] args) {
        EnumTest firstDay = new EnumTest(Day.MONDAY);
        firstDay.tellItLikeItIs();
        EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
        thirdDay.tellItLikeItIs();
        EnumTest fifthDay = new EnumTest(Day.FRIDAY);
        fifthDay.tellItLikeItIs();
        EnumTest sixthDay = new EnumTest(Day.SATURDAY);
        sixthDay.tellItLikeItIs();
        EnumTest seventhDay = new EnumTest(Day.SUNDAY);
        seventhDay.tellItLikeItIs();
    }
}

输出将是:

Mondays are bad.
Midweek days are so-so.
Fridays are better.
Weekends are best.
Weekends are best.

关于java - 这个东西在Java中叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936858/

相关文章:

python - Numba jitclass : parent class type as a class member

java - Java 中的泛型类型转换与参数化类型转换

java - 并发线程访问单例

java - 为什么 ArrayList 没有实现 Queue?

对象变量中的 Javascript HTTP 请求队列 - 初始化不起作用

javascript - 如何将 Ajax Json 响应附加到 html?

Javascript - 使用最后一个迭代值的对象值数组

javascript - 如何使用jsp、javascript、css以粗体或颜色显示表格数据

java - 绘制多个矩形,中间有分隔线

c# - 定义对象列表。通过对象中的特定字段获取