所用到的知識:
- 物件的建立
- 物件的三大特性,封裝、繼承與多型
- 物件的裝箱與拆箱
- 函數的建立與呼叫
- 無參構造和有參構造
get
和set
方法- 方法的覆蓋
博主入坑Java
差不多兩週多了,感慨身邊一個個的單身狗(心中暗喜,還好博主有了女朋友,嘻嘻),最近剛學了物件的三大特性,想到程式設計師大多都是單身,心想為何不用物件的思想來new
一個女朋友呢,因此,博主躍躍欲試,成功new出了一個女朋友,所以,單身狗們你們的春天來了,讓我們new
一個女朋友吧!O(∩_∩)O
首先建立一個女朋友物件,屬性就是長相,身高,體重,名字什麼的啦,方法一定要會生孩子,一個沒有孩子的家庭是沒有歡樂的,俗話說七年之癢,孩子就是婚姻的潤滑劑(有點說多了)。當然,最後還要有一個一家人幸福在一起的方法,Happiness…,程式碼如下;
class Girlfriend {
private String name;
private double height;
private double weight;
private String appearance;
/**
* 生成有參構造和無參構造
*/
public Girlfriend() {
}
public Girlfriend(String name, double height, double weight, String appearance) {
this.name = name;
this.height = height;
this.weight = weight;
this.appearance = appearance;
}
/**
* 生成get,set方法
* @return
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getAppearance() {
return appearance;
}
public void setAppearance(String appearance) {
this.appearance = appearance;
}
/**
* 生孩子的方法
* @return 返回一個baby(生男,生女不知道)
*/
public Child bornChild() {
Child baby;
int b = (int) (Math.random() * 2); //生成亂數,如果是1就是男孩,如果是0就是女孩。
if (b == 1) {
baby = new Boy();
} else {
baby = new Girl();
}
return baby;
}
/**
* 一家人幸福地在一起
* @param child 生的孩子
*/
public void happiness(Child child) {
System.out.println("我和我的老婆" + this.name + ",還有我的孩子" + child.getName() + ",幸福地生活在一起");
}
}
孩子由亂數生成,如果是1就是男孩,如果是0就是女孩,返回一個child
,將孩子進行裝箱,當然一定要有一個Child
的父類別,和Boy
和Girl
的子類,接下來建立父子類。
一個孩子必須要有一個名字,但是,在生孩子之前並不知道這個孩子是男孩還是女孩,如果是男孩就叫小明,如果是女孩就叫小花(感覺有點low啊,不過以後我的真實孩子的名字一定要即響亮又文雅,齊德龍東強除外),父類別創造playFun
的方法,以便於子類進行方法覆蓋。子類繼承set
,get
方法可以對繼承的父類別name
屬性進行賦值。
class Child {
private String name;
/**
* 父類別有參構造和無參構造
*/
public Child() {
}
public Child(String name) {
this.name = name;
}
/**
* get,set方法必須有,方便子類呼叫
* @return
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 玩耍的方法,以便於子類進行覆蓋。
*/
public void playFun() {
System.out.println("我喜歡和爸爸一起玩...");
}
}
class Boy extends Child {
public Boy() {
}
/**
* 呼叫父類別進行子類有參構造
* @param name 孩子的名字
*/
public Boy(String name) {
super(name);
}
/**
* 子類對父類別的方法進行覆蓋
*/
public void playFun() {
System.out.println(this.getName() + "喜歡和爸爸一起玩奧特曼");
}
}
class Girl extends Child {
public Girl() {
}
/**
* 呼叫父類別進行子類有參構造
* @param name 孩子的名字
*/
public Girl(String name) {
super(name);
}
/**
* 子類對父類別的方法進行覆蓋
*/
public void playFun() {
System.out.println(this.getName() + "喜歡和爸爸一起玩芭比娃娃");
}
}
既然,女朋友類和孩子類已建立完成,那麼,爸爸就要上場了,讓我們一起開始new
女朋友和造猴子吧。
不知道你們喜歡什麼樣的女朋友,反正我的要求不高,我就喜歡長得高,身材好,又特別漂亮似神仙的叫小芳的女孩。女朋友找到了,然後就可以生小猴子了,生之前我們不知道是男孩還是女孩,因此生孩子返回值就用Child
的變數來接收,但是,男孩女孩上衛生間不一樣,就要對男孩女孩進行拆箱,然後採用函數的呼叫,男孩上男衛生間,女孩上女衛生間。最後,我們一家人幸福地生活在了一起。
/**
* @Description: new一個女朋友,和女朋友一起生了一個孩子,最後一家人幸福地生活在了一起。
* @Author: victor
* @Date: 2020/9/18 17:28
*/
public class GenerateGirlfriend {
public static void main(String[] args) {
//new一個女朋友
Girlfriend girlfriend = new Girlfriend();
girlfriend.setName("小芳");
girlfriend.setHeight(175);
girlfriend.setWeight(50);
girlfriend.setAppearance("very beautiful");
/*
* 不知道女朋友生的孩子是男孩還是女孩,因此用父類別物件來接收,將baby物件進行裝箱
*/
Child myChild = girlfriend.bornChild();
if (myChild instanceof Boy) {
myChild.setName("小明"); //如果是男孩,就叫小明
} else {
myChild.setName("小花"); //如果是女孩,就叫小花
}
myChild.playFun();
/*
* 因為男孩女孩上衛生間不同,就要對baby進行拆箱,男孩就上男衛生間,女孩就上女衛生間
*/
if (myChild instanceof Boy) { //拆箱:男孩上男衛生間,女孩上女衛生間。
Boy myBoy = (Boy) myChild;
boyBathroom(myBoy);
} else {
Girl myGirl = (Girl) myChild;
girlBathroom(myGirl);
}
girlfriend.happiness(myChild); //最後一家人幸福地生活在一起。
}
/**
* 男孩上男衛生間
* @param myBoy 傳入一個男孩的物件
*/
public static void boyBathroom(Boy myBoy) {
System.out.println(myBoy.getName() + "正在上男衛生間...");
}
/**
* 女孩上女衛生間
* @param myGirl 傳入一個女孩的物件
*/
public static void girlBathroom(Girl myGirl) {
System.out.println(myGirl.getName() + "正在上女衛生間...");
}
}
本人能力有限,而且剛接觸物件,因此,文章中會有不足之處,歡迎各位大佬進行批評與指正。以後,隨著博主的不斷學習,會加以完善,歡迎大家點贊。