第三章—練習

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

調用了自己這個類的另外一個構造方法
this(name,school,”beijing”);
在這裏插入圖片描述

參數寫錯調整過來了
在這裏插入圖片描述

在這裏插入圖片描述

Student_LianXi_29 s1 = new Student_LianXi_29(“C”, “S1”);
在這裏插入圖片描述
本來堆內存中的“C”和“beijing”應該存在data seg裏面,應該是通過引用指向data seg裏面這個兩個值的,但是爲了方便看所以才這麼畫的
//第二個構造方法
Student_LianXi_29(String n,String l,String school) {
//設定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}

調用完父類的構造方法 執行完 super(n,l);
在這裏插入圖片描述

//第二個構造方法
Student_LianXi_29(String n,String l,String school) {
//設定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}
執行this.school = school;時
在這裏插入圖片描述

下面的這個方法執行結束時
//第二個構造方法
Student_LianXi_29(String n,String l,String school) {
//設定Person_LianXi_29的private String name;和private String location;
super(n,l);
this.school = school;
}
在這裏插入圖片描述

//第二個構造方法完成後返回給this(name,“beijing”,school);
所以第一個構造方法結束
//第一個構造方法
Student_LianXi_29(String name,String school) {
//調用了自己這個類的另外一個構造方法
//第一個構造方法調用了第二個構造方法
//第一個構造方法裏面的值把第二個的構造方法的值初始化了
this(name,“beijing”,school);
//把name傳給n
//把"beijing"傳給l
//把school傳給school
}
在這裏插入圖片描述

在這裏插入圖片描述

package pack03.TestTeacher;

class Person {
	private String name;
	private String location;

	Person(String name) {
		this.name = name;
		location = "beijing";
	}

	Person(String name, String location) {
		this.name = name;
		this.location = location;
	}

	public String info() {
		return "name: " + name + " location: " + location;
	}
}

class Student extends Person {
	private String school;

	// 第一個構造方法
	Student(String name, String school) {
		// 調用了自己這個類的另外一個構造方法
		// 第一個構造方法調用了第二個構造方法
		// 第一個構造方法裏面的值把第二個的構造方法的值初始化了
		this(name, "beijing", school);
		// 把name傳給n
		// 把"beijing"傳給l
		// 把school傳給school
	}

	// 第二個構造方法
	Student(String n, String l, String school) {
		// 設定Person_LianXi_29的private String name;和private String location;
		super(n, l);
		this.school = school;
	}

	@Override
	public String info() {
		return super.info() + "  school: " + school;
	}
}

class Teacher extends Person {
	private String capital;

	// 第一個構造方法
	Teacher(String name, String capital) {
		this(name, "beijing", capital);
	}

	// 第二個構造方法
	Teacher(String n, String l, String capital) {
		//交給父類去處理
		super(n, l);
		this.capital = capital;
	}

	@Override
	public String info() {
		return super.info() + "  capital: " + capital;
	}
}

public class TestTeacher {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person p1 = new Person("A");
		Person p2 = new Person("A", "shanghai");
		Student s1 = new Student("C", "S1");
		Student s2 = new Student("C", "shanghai", "S2");
		System.out.println(p1.info());
		System.out.println(p2.info());
		System.out.println(s1.info());
		System.out.println(s2.info());
		
		Teacher t1 = new Teacher("D", "Professor");
		System.out.println(t1.info());
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章