当前位置: 技术问答>java相关
提問:關於編程思想第136頁
来源: 互联网 发布时间:2015-03-26
本文导语: class Poppet{} class BlankFinal{ final int j=0; final int j;//Blank final final Poppet p;//Blank final handle BlankFinal(){ j=1;//initialize blank final ...
class Poppet{}
class BlankFinal{
final int j=0;
final int j;//Blank final
final Poppet p;//Blank final handle
BlankFinal(){
j=1;//initialize blank final
p=new Poppet();
}
BlankFinal(int x){
j=x;//initialize blank final
p=new Poppet();
}
public static void main(String [] args){
BlankFinal bf=new BlankFinal();
}
}
書上說對final變量j定義時可以不賦初值,然後在類的構建器中初始化,可是編譯怎麼也通過不了,問題出在變量j上,p沒有問題。請問這樣到底行不行?
class BlankFinal{
final int j=0;
final int j;//Blank final
final Poppet p;//Blank final handle
BlankFinal(){
j=1;//initialize blank final
p=new Poppet();
}
BlankFinal(int x){
j=x;//initialize blank final
p=new Poppet();
}
public static void main(String [] args){
BlankFinal bf=new BlankFinal();
}
}
書上說對final變量j定義時可以不賦初值,然後在類的構建器中初始化,可是編譯怎麼也通過不了,問題出在變量j上,p沒有問題。請問這樣到底行不行?
|
老兄,你的编译器报的错是不是j已经被定义了?这个报错和final没有什么关系啵。
可以不赋初值的。没有问题,可以通过编译。
可以不赋初值的。没有问题,可以通过编译。
|
补充一点,初始化一个变量(赋初值)只需要在这个变量被使用之前就行了,和final没有关系。
|
final int j=0;
//j這個數值被定義了作0而不可以改變...
而且當你定義了一個絶對數值以後...
這個數值便不可改變...
ok?
//j這個數值被定義了作0而不可以改變...
而且當你定義了一個絶對數值以後...
這個數值便不可改變...
ok?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。