单身狗程序员的春天来了,让我们new一个女朋友吧

时间:2020-9-19 作者:admin

单身狗程序员的春天来了,让我们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() + "正在上女卫生间...");
    }
}

本人能力有限,而且刚接触对象,因此,文章中会有不足之处,欢迎各位大佬进行批评与指正。以后,随着博主的不断学习,会加以完善,欢迎大家点赞。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。