在 class 构造函数中使用枚举
Using enum in an class constructor
我正在为即将到来的考试做一些复习,我对在对象的构造函数中使用枚举有点困惑。
这是我为 class country() 编写的代码,其中问题要求包括每个国家/地区对象的联合国成员身份。
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;
}
}
我想知道如何正确地将枚举作为参数传递。我知道枚举的语法是 enum.VARIABLE,但我在这方面尝试过的一切都没有正常工作。有更好的方法吗?
您的枚举声明必须是 public,否则调用者无法访问其值:
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
}
如果在 class 中声明,它必须仍然是 public,然后可以用 Country.Status
访问,例如Country.Status.NOTMEMBER
.
我正在为即将到来的考试做一些复习,我对在对象的构造函数中使用枚举有点困惑。
这是我为 class country() 编写的代码,其中问题要求包括每个国家/地区对象的联合国成员身份。
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;
}
}
我想知道如何正确地将枚举作为参数传递。我知道枚举的语法是 enum.VARIABLE,但我在这方面尝试过的一切都没有正常工作。有更好的方法吗?
您的枚举声明必须是 public,否则调用者无法访问其值:
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
}
如果在 class 中声明,它必须仍然是 public,然后可以用 Country.Status
访问,例如Country.Status.NOTMEMBER
.