为了账号安全,请及时绑定邮箱和手机立即绑定

构造方法中为final修饰的属性赋值

public class Father {

final int g;

public Father(){

g=4;

System.out.println("father1类无参数构造方法已执行");

System.out.println();

}

public Father(String newSex,double newB1,float newD1){

System.out.println("father1类有参构造方法已执行");

g=4;

System.out.println();

}

为什么在两种构造方法中都要为g赋值??不能只在一个构造方法(无参数或有参数)中赋值呢??

正在回答

3 回答

构造方法  在实体初始化时 只会调用一个构造方法, 只在一个中 初始化 g  你调用别的构造方法  g 是不会被初始化的

0 回复 有任何疑惑可以回复我~
#1

司空曙 提问者

哦哦。我明白了。 就是说,系统为了确定g必须有初始值,就要规定在所有的构造方法中都要添加同一个赋值语句吧?
2015-08-19 回复 有任何疑惑可以回复我~
#2

司空曙 提问者 回复 司空曙 提问者

我试过了,在有参或无参构造方法中都要赋值语句。可以赋不同的值 public Friends(){ b=8; score1=7; System.out.println("父类的无参构造方法已执行,为score1赋值"); System.out.println(); } public Friends(int a,int score1){ b=4; this.a=a; this.score1=score1; System.out.println("父类的有参构造方法已执行,为a,score1赋值"); } 可以通过编译。
2015-08-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

构造方法中为final修饰的属性赋值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信