构造方法的格式:
修饰符 构造方法名(参数列表)
{
}
构造方法的体现:
构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。
构造方法名称必须和类名保持一致。
构造方法没有具体的返回值。
public class Person {
private String name;
private int age; //构造方法
public Person(String name,int age){
this.name=name;
this.age=age;
}
//构造方法的重载
public Person(String name){
this.name=name;
}
public Person(){ } public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }
public class Demo01 {
public static void main(String[] args) {
//构造方法调用
Person p=new Person("张三", 10);
System.out.println(p.getName()+" "+p.getAge());
}
}
当类中无构造方法时,系统会给此类默认添加一个空参构造。
如果类中有至少一个空参方法时,系统就不会再添加空参构造了。
构造方法在对象创建时就执行了,而且只执行一次。
一般方法是在对象创建后,需要使用时才被对象调用,并可以被多次调用。
public class Pig {
private String name; public Pig(){
//构造方法调用构造方法
//在同一类中,使用this()调用构造方法;
//只能进行构造方法之间的调用
//this();只能放在构造方法的第一行
this("小红帽");
}
public Pig(String name){
this.name=name;
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
//解决同时super和this
public class Student extends Person{
private String name;
public Student(){
this("张三");
System.out.println("子类空");
}
public Student(String name){
super();//调用父类中的构造方法,必须放在构造方法中的第一行
//在所有构造方法的第一行默认super();方法
this.name=name;
}
}