当前位置: 首页 > 知识库问答 >
问题:

在类构造函数中使用枚举

谢承颜
2023-03-14

我正在为即将到来的考试做一些修订,我对对象构造函数中枚举的使用有点困惑。

public class Country {

    private String name;
    private enum Status {NOTMEMBER, GENERALASSEMBLY, TEMPORARYSC, PERMANENTSC};
    private boolean duesPaid;

    public Country(String name, Status status, boolean duesPaid) {
        this.name = name;
        this.Status = status;
        this.duesPaid = duesPaid;
    }

    public String getName() {
        return name;
    }

    public Status getStatus() {
        return Status;
    }

    public boolean hasPaidDues() {
        return duesPaid;
    }

    public void changeStatus(Status status) {
        this.Status = status;
    }
}

共有1个答案

南门新荣
2023-03-14

枚举声明必须是公共的,否则调用方无法访问其值:

public enum Status {NOTMEMBER, GENERALASSEMBLY, TEMPORARYSC, PERMANENTSC};
public class Country 
{
    private String name;
    private boolean duesPaid;
    private Status status;
    
    public Country(String name, Status status, boolean duesPaid) {
        this.name = name;
        this.Status = status;
        this.duesPaid = duesPaid;
    }

    // getters + setters left out for brevity
}

如果在类中声明,它必须仍然是公共的,然后可以使用country.status访问,例如country.status.notmember

 类似资料:
  • 我不确定我是否过度工程化了,但我正在考虑创建一个枚举,其中包含一个枚举列表作为它的值,从中我可以得到它的值。 我无法确定枚举的类型,以便正确地将值数组筛选到正确的枚举。例如,我可以用轻松地获得US枚举。我遇到的困难是从该数组中获得正确的值。我尝试比较名称,

  • 由于派生类继承了其基类的成员,所以在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象的基类成员。派生类的构造函数既可以隐式调用基类的构造函数,也可以在派生类的构造函数中通过给基类提供初始化值(利用了前面所讲过的成员初始化值语法)显式地调用基类的构造函数。 派生类不继承基类的构造函数和赋值运算符,但是派生类的构造函数和赋值运算符能调用基类的构造函数和赋值运算符。 派生类的构造函数总是

  • 本文向大家介绍我们如何在Java中将枚举类型与构造函数一起使用?,包括了我们如何在Java中将枚举类型与构造函数一起使用?的使用技巧和注意事项,需要的朋友参考一下 枚举类型可以具有一个私有的构造函数,该构造函数可用于初始化实例字段。  EnumDemo类演示了这一点。它具有带有四个常量的Food枚举类型:HAMBURGER,FRIES,HOTDOG和ARTICHOKE。请注意,括号后的每个常数值之

  • 问题内容: 我有一个“ ChildClass”类,它扩展了“ ParentClass”类。我不想完全替换父类的构造函数,而是要先调用父类的构造函数,然后再做一些额外的工作。 我相信默认情况下会调用父类的0参数构造函数。这不是我想要的 我需要用参数调用构造函数。这可能吗? 我试过了 但这不起作用,因为您无法修改“ this”。 问题答案: 您可以从子代的构造函数中以“ super”引用父代的构造函数

  • 问题内容: 如果我有一个像这样的构造函数: 然后,我如何在与构造函数相同的类中的方法中使用变量c和d,因为尝试仅在方法中使用变量名似乎不起作用? 问题答案: 实际上,您的代码将无法编译- 无效。 我认为您的意思是:- 。 然后我如何在与构造函数相同的类中的方法中使用变量c和d 您不能这样做,因为您已将它们声明为局部变量,其范围在构造函数结束执行时终止。 您应该将它们声明为实例变量。

  • 问题内容: 目前,我们的代码存在一种情况,即我们在Java层中使用枚举,该枚举通过以下构造函数存储id和“显示值”: 我们希望打字稿中的某些内容能够与之匹配,以便以有意义的方式显示状态以执行逻辑并在前端向用户显示值。这可能吗?有没有更好的方法来解决这个问题?我们希望避免使用诸如status.id()= 1或status.name()=’Active’这样的逻辑,从而推动枚举。 谢谢 问题答案: T