什么是构造器
构造器又叫构造方法或是构造函数
在java中,要创建一个对象必须要用new 关键字 创建的步骤是
- 在堆中为对象开辟空间,当前类的成员属性会跟随对象进入到堆内存并附默认值
- 调用构造器为对象初始化信息(一般为成员属性第一次赋值)
- 将对象的地址返回给引用
所以,构造器的作用是初始化对象
定义格式
修饰符 类名([参数]){
//类体
}
需要注意的是:
- 没有返回值类型,没有void
- 可以根据需求存在return,提前结束方法
- 构造器不能和static,abstract,final一起使用
调用
跟随new使用,因为构造器的作用是初始化对象,是创建对象中的一步.
注意事项
- 如果没有显示构造器,编译器会隐式为你提供一个空构造,所以一定会存在一个构造器.
- 如果存在自定义构造器,编译器不会再为你提供任何构造器, 包括空构造
- 定义多个构造器,参数列表不同,构成构造器的重载,调用根据()中的实参匹配不同的构造器
- 构造器的修饰符可以是private,私有的,只能在当前类中使用这个构造器.
public class ConstructorDemo01 {
//空构造 :没有参数的构造器
/*public ConstructorDemo01(){
//打印语句的快捷键 : syso->alt+/
System.out.println("我是无参空构造....");
}*/
//main->alt+/
public static void main(String[] args) {
//Dog dog=new Dog();
//Dog dog=new Dog("二楞子"); //()匹配不同构造器参数列表
Dog dog2=new Dog("张二狗","中华田园狗"); //创建对象的同时为成员属性赋值
//dog.lookHome();
//dog.name="三楞子"; //修改对象的属性值
//dog.lookHome();
dog2.Dog();
}
}
//Dog类
class Dog{
public String name;
public String type;
//默认提供空构造
private Dog() { //只能再当前Dog类中才能使用这个构造器为对象初始化信息
System.out.println("我是空构造.....");
}
//带参构造器
public Dog(String dogName){
name=dogName; //为成员属性name赋值
}
public Dog(String dogName,String dogType){
name=dogName;
type=dogType;
}
//普通的方法
public void Dog(){ //方法名不符合标识符的命名规范
System.out.println(name+"-->"+type);
Dog dog=new Dog();
}
//功能看家
public void lookHome(){
System.out.println(name+"正在看家...");
}
}