(1)构造方法名称与类名相同,没有返回值声明( 包括void)(2)构造方法用于初始化数据(属性)
(3)每一个类中都会有一一个默认的无参的构造方法
(4)如果类中有显示的构造方法,那么默认构造方法将无效
(5)如果有显示的构造方法,还想保留默认构造方法,需要显示的写出来。
(6)构造方法可以有多个,但参数不一样,称为构造方法的重载
(7)在构造方法中调用另一个构造方法,使用this(..),该句代码必须在第一句。
(8)构造方法之间的调用,必须要有出口。
(9)给对象初始化数据可以使用构造方法或setter方法,通常情况下,两者都会保留。
(10)一个好的编程习惯是要保留默认的构造方法。 (为了方便--些框架代码使用反射来创建对象)
(11) private Dog(){ },构造方法私有化,当我们的需求是为了保正该类只有一一个对象时。
什么时候一个类只需要一一个对象?比如,工具类(没有属性的类,只有行为)并且该工具对象被频繁使用。权衡只用一一个对象与产生多个对象的内存使用,来确定该类是否要定义为只需要一一个对象。
/**
构造方法:构造方法是在类中定义的,构造方法的定义格式:方法名称与类名相同,无返回值类型的声明
1.构造方法就是类构造对象时调用的方法,用于对象的初始化
2.构造方法是实例化一个类的对象时,也就是new的时候,最先调用的方法
*/
public class Test3{
public static void main(String[]args){
Dog dog = new Dog();
Dog dog1 = new Dog("小白",5);
}
}
class Dog{
//默认构造方法,通常有其他构造方法时,要保留默认构造方法
public Dog(){
System.out.println("构造方法执行了");
}
public Dog(String name){
this.name = name;
System.out.println("带一个参数的构造方法执行了");
}
public Dog(String name,int age){
this(name);//调用其他构造方法时,此语句需要在第一句,在构造方法相互调用时必须要有出口
//this.name = name;
this.age =age;
System.out.println("带两个参数的构造方法执行了");
}
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}