如何在构造函数中将字段设置为常量

时间:2014-04-08 16:13:39

标签: java constants subclass final

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

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方法,它本身就已经是常量吗?这是因为它是私人的吗?

1 个答案:

答案 0 :(得分:2)

  

在我写这篇文章时,我意识到如果我不提供一套方法   对于classStatus来说,它本身就是常量吗?这到期了   它是私人的?

这不是一种正确的做法,将变量classStatus声明为final

private final String classStatus;

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