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

请各位大神帮我看一下

package zuoshiyan;


public class HelloWorld1 {

int sum1;

int sum2;

static int sum3;

public void a() {

sum1=12;

System.out.println("diyici");

}

{

sum2=13;

}

{

sum3=14;

}

public static void main(String[] args) {

HelloWorld1 hello=new HelloWorld1();

System.out.println(hello.sum1);

System.out.println(hello.sum2);

System.out.println(sum3);

HelloWorld1 hello2=new HelloWorld1();

HelloWorld1 hello3=new HelloWorld1();

}


}

/*此操作运行结果为:

 * 0

 * 13

 * 14

 *请问,为什么不对sum1赋值

 *难道就必须要用构造方法才行么

 */


正在回答

2 回答

你对sum1的赋值时放在一个方法里的,创建hello对象后没有使用这个方法,所以sum1的值是系统默认的int型的值,就是0了

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

慕码人2851768 提问者

那么构造方法不算是方法么
2018-11-25 回复 有任何疑惑可以回复我~
#2

幕布斯2902570 回复 慕码人2851768 提问者

构造方法名要和类名保持相同,你是在普通成员方法中对成员变量进行赋值的,只有对象调用了那个成员方法才会真正给赋值。
2018-12-06 回复 有任何疑惑可以回复我~
#3

慕码人2851768 提问者 回复 幕布斯2902570

好的知道了谢谢
2018-12-08 回复 有任何疑惑可以回复我~

sum1=12的作用范围好像只有在a()这个方法中,而你的main里面没有用到a()这个方法,所以等于没有对这个sum1赋值,所以还是默认0

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

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530628    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

请各位大神帮我看一下

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