【问题标题】:How do i set a field as constant in the constructor如何在构造函数中将字段设置为常量
【发布时间】:2014-04-08 16:13:39
【问题描述】:

所以我有一个 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 对象时,我还想在参数中包含“freshmen”、“sophomore”、“junior”或“senior”,并将 classStatus 设置为常量。

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

【问题讨论】:

    标签: java constants subclass final


    【解决方案1】:

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

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

    private final String classStatus;
    

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

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多