Java的构造方法
1、为什么要使用构造方法?
构造方法的主要作用是完成对象初始化工作进行,当对面向对象的属性进行封装时,它能够把定义对象的参数传给对象的域
public class Dog{
private String name;//对类的属性进行封装
private String sex;
private int age;
public Dog(String name,String sex,int age){//把定义对象的参数传给对象的域
super();
this.name=name;
this.sex=sex;
this.age=age;
}
}
2 、在新对象被建立时,(注意:除了会使用new来建立新对象,还会有反射的方法)构造方法会被调用,当类中没有定义构造方法时,系统会给一个无参的构造方法,这个是类中默认的构造方法。一旦你已定义构造方法(无论是无参还是有参的构造方法),类中默认的构造方法都无法再使用。
Dog dog=new Dog("hasq","男",16);//构造方法在此时会被调用
3 、构造方法是允许被重载的,以参数的个数,类型,顺序(参数列表)为判断依据。
public class Dog{
private String Name;
private String sex;
public Dog(){
System.out.println("无参构造函数");
}
public Dog(String Name){
System.out.println("含一个参数的构造函数");
}
public Dog(String name,String sex){
System.out.println("含两个参数的构造方法");
}
//以上三种构造方法参数列表都不相同,即为构造方法的重载
}
4 、构造方法的结构是:
访问修饰符 类名(参数列表){方法体}
例如
public Dog(String Name){
System.out.println("含一个参数的构造函数");
}
5、 由构造方法的结构可知构造方法没有返回类型,也不能定义为void。
6、构造方法只会在完成对象初始化工作进行(即新对象被建立时),之后不能再使用。
public class Dog {
public Dog(String name,String sex,int age){
this();//调用无参的构造函数
}
public Dog(){
System.out.println("无参构造方法");
}
}
7、this(参数)
是调用本类中含有相同参数列表的构造方法
public class Dog {
public Dog(String name,String sex,int age){
this();//调用无参的构造函数
System.out.println("含三个参数的构造方法");
}
public Dog(){
System.out.println("无参构造方法");
}
}
super(参数)
是调用父类中含有相同参数列表的构造方法
class homeDog extends Dog{
public homeDog(String name){
//使用super调用父类中的构造方法
super(name,"公");
}
}
使用this和super调用构造方法时只能放在第一句,必须放在构造方法中