java 构造方法+this+super

 构造方法的格式:

修饰符 构造方法名(参数列表)

{

}

 构造方法的体现:

 构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。

 构造方法名称必须和类名保持一致。

 构造方法没有具体的返回值。

 

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;
    }
}

 

 
posted @ 2019-12-20 09:15  墨染千城  阅读(343)  评论(0)    收藏  举报