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

没有无参构造函数的初始化问题

package chapter5;

class InitTest {
	InitTest(String s) {
		System.out.println("InitTest()");
		System.out.println(s);
	}
}

public class Exercise17 {
	public static void main(String[] args) {
		InitTest[] it = new InitTest[10];
	}
}

这里使用new创建了大小为10的数组,但是InitTest这个类中没有无参构造函数,为什么new这行代码不会报错。

new InitTest[10];这里不是默认使用的无参构造函数吗?

正在回答

3 回答

我擦,脑洞有点大啊,你这什么数组类型啊?我没见过用引用类的,至少我在编程上面打出来系统报无效值无法用;

正常的数组类型:int String double  等等 eg:String[] a=new int[5] or  int[][] a=new int[2][3];

第一你这数组无效,第二你创建数组与构造函数无关,第三你要运行构造方法需要创建对象(默认无参构造方法eg: InitTest it=new InitTest())你的有参构造方法需在创建对象时输入参数调用eg: InitTest it=new InitTest(10);请注意()里面的10不是数组长度而是参数10,你可以输入int型的任何数字,你输入一百亿都随你高兴只要你愿意多大几个0。

纯手打,若有疑问可以继续提出来

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

qq_淤泥_0

抱歉看错了你的参数类型是String 哈哈 ()里输入字符窜就好了,哈哈白带了4个眼睛
2017-02-21 回复 有任何疑惑可以回复我~

InitTest[] it = new InitTest[10];这样创建出来的数组默认是十个null,所以并没有调用InitTest的构造

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

InitTest[] it = new InitTest[10]   这个意思是声明一个 InitTest类型的数组,不是创建对象,也就是说还没有进行实例化,所以它还没有调用到构造函数。

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

举报

0/150
提交
取消

没有无参构造函数的初始化问题

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