單身狗程式設計師的春天來了,讓我們new一個女朋友吧

2020-09-20 04:00:06

單身狗程式設計師的春天來了,讓我們new一個女朋友吧

所用到的知識:

  • 物件的建立
  • 物件的三大特性,封裝、繼承與多型
  • 物件的裝箱與拆箱
  • 函數的建立與呼叫
  • 無參構造和有參構造
  • getset方法
  • 方法的覆蓋

博主入坑Java差不多兩週多了,感慨身邊一個個的單身狗(心中暗喜,還好博主有了女朋友,嘻嘻),最近剛學了物件的三大特性,想到程式設計師大多都是單身,心想為何不用物件的思想來new一個女朋友呢,因此,博主躍躍欲試,成功new出了一個女朋友,所以,單身狗們你們的春天來了,讓我們new一個女朋友吧!O(∩_∩)O

1.建立一個女朋友的類

首先建立一個女朋友物件,屬性就是長相,身高,體重,名字什麼的啦,方法一定要會生孩子,一個沒有孩子的家庭是沒有歡樂的,俗話說七年之癢,孩子就是婚姻的潤滑劑(有點說多了)。當然,最後還要有一個一家人幸福在一起的方法,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的父類別,和BoyGirl的子類,接下來建立父子類。

2.建立Child父類別和Boy,Girl子類

一個孩子必須要有一個名字,但是,在生孩子之前並不知道這個孩子是男孩還是女孩,如果是男孩就叫小明,如果是女孩就叫小花(感覺有點low啊,不過以後我的真實孩子的名字一定要即響亮又文雅,齊德龍東強除外),父類別創造playFun的方法,以便於子類進行方法覆蓋。子類繼承setget方法可以對繼承的父類別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女朋友和造猴子吧。

3.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() + "正在上女衛生間...");
    }
}

本人能力有限,而且剛接觸物件,因此,文章中會有不足之處,歡迎各位大佬進行批評與指正。以後,隨著博主的不斷學習,會加以完善,歡迎大家點贊。