java吧 关注:1,292,724贴子:12,823,687
  • 6回复贴,共1

萌新请教个给数组变量赋值的问题.拜谢!!

只看楼主收藏回复

我尽量简单写,问题在后边注释里,谢谢大家了.
private int good; //上边是类的开头不写了
private String[] common=new String[this.good]; //定义一个int 变量和字符串数组;
public temp(int num) {
this.good=num; //建对象时给变量good 赋值
System.out.println(this.good); //输出是5 ,没毛病
System.out.println(common.length); //问题来了 这时候输出的是0;请问是为什么????我该怎么改
}
public static void main(String[] str) {
temp tm=new temp(5);
}
}


IP属地:辽宁1楼2018-09-04 09:27回复
    自己顶下


    IP属地:辽宁2楼2018-09-04 09:37
    回复
      2025-12-27 14:37:18
      广告
      不感兴趣
      开通SVIP免广告
      初始化的时候就已经建立数组了,而good当时为0,所以为0。可以看看类如何加载


      来自Android客户端3楼2018-09-04 09:55
      回复
        类的普通属性初始化是在调用构造函数之前的,所以你调用构造函数之后两个属性的变化是good=0;(未赋初始值默认为0)commen=new string[0]; 然后构造函数执行,good=num=5;所以commen.lenth=0


        IP属地:湖北来自Android客户端4楼2018-09-04 09:55
        回复
          改正的话把commen=new string[num]放在构造函数里就可以了,类中只需要定义不用赋值


          IP属地:湖北来自Android客户端5楼2018-09-04 09:58
          收起回复
            有什么问题想快速得到答案,可以找我,企鹅是 71,45, 889,44


            IP属地:江西6楼2018-09-04 10:48
            回复