最终是java中的访问修饰符还是非访问修饰符?
这个Thread类的setName()方法 public final void setName(string name)真的是最终的吗?如果是,这意味着一旦线程名称被更改,则由于最终关键字而无法在以后更改。?
或者final不是方法setName()的一部分?
Plz指导我正确答案..
答案 0 :(得分:0)
请理解:
之间存在差异 将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作为最终
现在setName()
类的Thread
方法final
并不意味着我们无法更改此name
的{{1}}。相反,它只是意味着Thread
这个类的类不能覆盖此方法。