当定义一个类时,如果我想自己定义构造方法而不是用系统缺省的,是不是必须先定义一个无参的构造方法再定义含参的?不能只有含参的而没有无参的构造方法?
例如下面的写法算不算错:
public class aaa{
private int x;
public aaa(int x){
this.x=x;
}
}而必须写成:
public class aaa{
private int x;
public aaa();
public aaa(int x){
this.x=x;
}
}
例如下面的写法算不算错:
public class aaa{
private int x;
public aaa(int x){
this.x=x;
}
}而必须写成:
public class aaa{
private int x;
public aaa();
public aaa(int x){
this.x=x;
}
}
public aaa(){};
或者
public aaa(){;}
只有抽象方法可以省略大括号吧?
请记住:仅当类没有提供任何构造函数的时候,系统才会提供一个默认的构造函数。如果在编写类的时候,给出哪怕一个很简单的构造函数,要想让这个类的用户具有以下采用构造实例的能力:new ClassName(),就必须提供一个默认的构造函数(即不带参的构造器);如果希望所有属性拥有默认的值,可以提供以下的构造函数:public ClassName(){}