最终是java中的访问修饰符还是非访问修饰符?关于Thread类的setName()方法中的final关键字
线程类的这个setName()方法public final void setName(string name)真的最后?如果是的话,这意味着一旦线程名称被改变,那么由于最终的关键字,它不能被更改。
或者final不是方法setName()的一部分?
PLZ指导我正确答案..
最终是java中的访问修饰符还是非访问修饰符?关于Thread类的setName()方法中的final关键字
线程类的这个setName()方法public final void setName(string name)真的最后?如果是的话,这意味着一旦线程名称被改变,那么由于最终的关键字,它不能被更改。
或者final不是方法setName()的一部分?
PLZ指导我正确答案..
请理解之间存在差异:制作member variables
作为最终和
variables
班级被标记为最终,这意味着他们不能在以后更改
要记住的点:正如@GhostCat指出的那样,在将member variables
标记为final时,一旦最终变量被赋值,它总是包含相同的值,但是它所引用的对象可能会被更改。例如,考虑此List
对象:
final List<Integer> list = new ArrayList<Integer>();
list = new ArrayList<Integer>(); // Invalid
list.add(2); //Valid
看到this回答更多的细节。
标记method declarations
作为最终
method
被声明为final的,这意味着它不能是不能被子类覆盖。class
ES在Java作为最终
现在,因为Thread
类的setName()
方法final
并不意味着我们不能改变这个Thread
的name
。相反,它只是意味着这个方法不能被这个类的类覆盖。
另一个很好的问题来为你读:http://stackoverflow.com/questions/1351568/java-basics-about-final-keyword –
@ErwinBolwidt非常感谢 – Lalaboy
公共final void setName(String name) “你不明白吗? “final”的哪一部分你不明白? – EJP