黑马程序员技术交流社区
标题:
Java基础入门中final关键字修饰成员变量的注意事项
[打印本页]
作者:
huyang936
时间:
2015-1-28 23:17
标题:
Java基础入门中final关键字修饰成员变量的注意事项
class Student
{
private final String name;
public String getName()
{
return name;
}
}
class Test33
{
public static void main(String[] args)
{
Student s = new Student();
}
}
复制代码
private final String name;//这句会报错
发的Java基础入门124页给出的解释是:
1.因为使用final关键字修饰成员变量时,虚拟机不会对其进行初始化。
2.因此使用final修饰成员变量时,需要在定义变量的同时赋予一个初始值。
第一句话没错,第二句话有待商榷
研究了下,发现可以有两种解决方案:
1.在默认空构造函数中初始化name
Student()
{
name = "张三";
}
2.在构造代码块中初始化name
{
name = "张三";
}
作者:
朋好友
时间:
2015-1-28 23:21
我感觉被final 修饰得成员变量 是要在本类的函数中实现首次初始化即可 (既不能在测试函数中对其进行赋值 也不能不赋初始化值)
作者:
13922919272
时间:
2015-1-28 23:44
一个常量 你这样赋值有用吗 既然要赋值干嘛要用final
作者:
huyang936
时间:
2015-1-28 23:50
13922919272 发表于 2015-1-28 23:44
一个常量 你这样赋值有用吗 既然要赋值干嘛要用final
没用 但技术上可以 实际开发肯定不这样干 但只是感觉书上的话说的太死了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2