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

大佬给我解释一下我下面的问题 谢谢

大佬给我解释一下我下面的问题 谢谢

不会游泳的小鲸鱼 2017-11-19 17:39:32
package Practise;public class Java2110 { String name; String sex; static int age; public Java2110(){ name = "tom"; System.out.println("通过构造方法初始化name"); } { sex = "男"; System.out.println("通过初始化块初始化sex"); } static{ age = 20; System.out.println("通过静态初始化块初始化age"); }/* public static void main(String[] args){ Java2110 hello = new Java2110(); System.out.println("姓名:"+hello.name+","); System.out.println("性别:"+hello.sex+","); System.out.println("年龄:"+age); Java2110 hello2 = new Java2110(); }*/ public void AA() { System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age); } public static void main(String[] args){ Java2110 hello = new Java2110(); }}为什么答案是:通过静态初始化块初始化age通过初始化块初始化sex通过构造方法初始化name需要输出的答案是:通过静态初始化块初始化age通过初始化块初始化sex通过构造方法初始化name姓名:tom,性别:男,年龄:20我只是把赋值语句放在了输出语句前面了而已(加黑部分),为什么就出现这样的情况了,大佬能给我解释一下原因吗?
查看完整描述

3 回答

?
北顾岛城

TA贡献14条经验 获得超9个赞

你main方法里光创建了那个对象,也没调用它的AA方法输出啊。

查看完整回答
反对 回复 2017-11-20
?
小卢子_31

TA贡献1条经验 获得超0个赞

AA() 方法你不调用吗,你不输出则么得到值

查看完整回答
反对 回复 2017-11-19
?
_夕晨踏雪

TA贡献40条经验 获得超16个赞

问题描述的不是很清楚,但是静态初始化块是在类第一次被载入内存中执行的,比其他大的都要早

查看完整回答
反对 回复 2017-11-19
  • 3 回答
  • 0 关注
  • 1388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信