我只想澄清一下.有什么区别 -
private static int STUDENT_AGE = 18;
Run Code Online (Sandbox Code Playgroud)
和
private static final int STUDENT_AGE = 18;
Run Code Online (Sandbox Code Playgroud)
在球场内?
Jon Skeet解释说"根本与某个特定实例无关",好吧我想我明白了.那么最终在这种情况下究竟做了什么呢?
下面的代码不起作用是因为学生年龄被指定为静态最终?这是否意味着默认年龄根本无法覆盖?那么是否可以创建指定非默认年龄的构造函数?
private String myName;
private String myAddress;
private int myYearEnrolled;
private String myGender;
private static final int STUDENT_AGE = 18;
public Student(String name, String address, int year, String gender) {
myName = name;
myAddress = address;
myYearEnrolled = year;
myGender = gender;
}
public Student(int age)
{
STUDENT_AGE = age;
}
Run Code Online (Sandbox Code Playgroud)
声明变量后final,其值不能在以后更改.在您提供的代码示例中,声明了一个常量,用于定义特定活动的学生年龄.这可能意味着将存在某种活动的条件,即将学生的年龄与此常数进行比较.如果学生年龄大于18岁,那么只允许他继续学习.