问一个问题!
一个类有参数的构造方法,就必须有没有参数的构造函数才能实例化吗? ----------------解决方案--------------------------------------------------------
不需要
----------------解决方案--------------------------------------------------------
class Testm{
public static void main(String[] args){
A a=new A();
a.print();
}
}
class A{
String s;
A(String s){
this.s=s;
}
public void print(){
System.out.print(s);
}
}
我觉得如果一个类有了有参数的构造方法就必须有没有参数的构造方法,因此以上的程序编译不能通过!
不知理解是否正确?
----------------解决方案--------------------------------------------------------
理解错误
所谓如果你没有定义任何一个构造函数的时候,默认的系统的编译器会为你自动添加一个不带任何参数的默认构造函数
但是如果你定义了一个构造函数的话,那么编译器是不会自动为你添加一个不带参数的构造函数的
----------------解决方案--------------------------------------------------------
如果你只写了一个带有参数的构造方法,而又想创建一个不带参数的对象(就是用无参构造方法),那么你必须自己写一个无参构造方法,否则报错,但是并不是写了有参构造方法就必须写无参构造方法的
----------------解决方案--------------------------------------------------------
不过最好还是养成写不带参数的构造方法的习惯,这样可以避免很多不必要而又意想不到的麻烦。
----------------解决方案--------------------------------------------------------