一.构造方法
构造方法的名字必须要和类名相同,构造方法是没有返回值的,但是不能声明void,如果在一个类中,有一个方法和类名相同,但是有返回值类型,那这就不是构造方法,而是一个普通方法。
当一个类没有定义一个构造方法时,那么系统会默认给你一个无参的构造方法,但是当你定义了一个构造方法后,无论这个方法有参无参,默认的无参方法都会消失,构造方法的功能在于创建一个类的对象时初始化的状态,在通过new来创建对象时,会被调用。
上代码:
public class Test {
public static void main(String[] args) {
AAA aaa = new AAA();
}
}
public class AAA {
public AAA(){
System.out.println("我被执行了");
}
}
我被执行了
再加上一个有void修饰的AAA试试呢?
public class Test {
public static void main(String[] args) {
AAA aaa = new AAA();
aaa.AAA();
}
}
public class AAA {
public AAA(){
System.out.println("我被执行了");
}
public void AAA(){
System.out.println("我是一个普通方法");
}
}
我被执行了
我是一个普通方法
二.构造方法的重载
构造方法的重载就和一般方法的重载一样,根据参数类型和参数个数来区分,而在创建对象时根据参数类型和参数个数来调用不同的构造方法。
public class AAA {
public AAA(){
System.out.println("我被执行了");
}
public AAA(int n){
System.out.println("这个有参数的构造方法被执行了");
}
public void AAA(){
System.out.println("我是一个普通方法");
}
}
public class Test {
public static void main(String[] args) {
AAA aaa = new AAA();
AAA aaa1 = new AAA(5);
aaa.AAA();
}
}
我被执行了
这个有参数的构造方法被执行了
我是一个普通方法