所以我有一个Person类,其中包含名称,地址,年龄和电子邮件地址。具有“班级状态(新生,大二,大三,大四)”的Person的子类Student。我必须将状态定义为常量。

class Student extends Person{
    private String classStatus;

    public Student(String name, String address, int age, String email,
final String classStatus){
        super(name, address, age, email);
        this.classStatus = classStatus;}


这有什么特别的问题吗? Eclipse没有给我任何错误,但是,我觉得我的变量实际上没有设置为常量。基本上,当我构造一个Student对象时,我还想在参数中包括“新人”,“大二”,“初中”或“高级”,并将classStatus设置为常量。

在写这篇文章的时候,我意识到如果不为classStatus提供set方法,它本质上已经是一个常数了吗?这是因为它是私有的吗?

最佳答案

在写这篇文章的时候,我意识到如果不提供set方法
  对于classStatus,它本身已经是常量吗?这是由于
  私有化?


这不是正确的方法,请将变量classStatus声明为final

private final String classStatus;


在这种情况下,当您创建Student的实例时,必须提供classStatus,此后不能更改该实例。

07-24 20:48