单身程序员的幻想女友模拟器,面对对象的三大特征

你 new 出来的不仅是一个对象,更是一段陪伴、一份慰藉。你孤独的时候想有人和你说说话。而真正的那个她,也一定会出现,和你肩并肩看代码、看星星。

项目结构

SweetGirlfriendSimulator/
├── src/
   └── com/
       └── love/
          ├── Main.java                 // 启动类
           ├── Person.java              // 抽象人类
           ├── IdealGirlfriend.java     // 理想女友类(可爱温柔)
           └── CoolGirlfriend.java      // 拓展:高冷型女友(多态演示)

 

 Person.java

package com.love;

public class Person {
    protected String name;
    protected int age;
    protected String personality;

    public Person(String name, int age, String personality) {
        this.name = name;
        this.age = age;
        this.personality = personality;
    }

    public void introduce() {
        System.out.println("你好,我是 " + name + ",今年 " + age + " 岁,性格是:" + personality);
    }

    public void dailyMessage() {
        System.out.println("今天又是努力向前的一天,要记得多喝水喔~");
    }
}

 IdealGirlfriend.java(可爱温柔型)

package com.love;

public class IdealGirlfriend extends Person {
    private String hobby;
    private boolean alwaysWithYou;

    public IdealGirlfriend(String name, int age, String personality, String hobby) {
        super(name, age, personality);
        this.hobby = hobby;
        this.alwaysWithYou = true;
    }

    public void saySweetWords() {
        System.out.println("亲爱的,我今天有乖乖想你哟~ (。♥‿♥。)");
    }

    public void cheerYouUp() {
        System.out.println("无论发生什么,我都会陪着你哒!你是我最棒的程序员男友 💻❤️");
    }

    public void datePlan() {
        System.out.println("我们一起去图书馆复习,再买奶茶看晚霞,好不好呀?✨");
    }

    public void hug() {
        System.out.println("(轻轻抱住你)要抱抱就说嘛,不许难过~");
    }

    public String getHobby() {
        return hobby;
    }

    public boolean isAlwaysWithYou() {
        return alwaysWithYou;
    }
}

CoolGirlfriend.java 

package com.love;

public class CoolGirlfriend extends IdealGirlfriend {
    public CoolGirlfriend() {
        super("小冷", 21, "高冷毒舌", "默默打游戏陪你");
    }

    @Override
    public void saySweetWords() {
        System.out.println("别傻了,我才没想你呢……(小声:其实一直在想)");
    }

    @Override
    public void cheerYouUp() {
        System.out.println("烦恼就扔了吧,抱一个就好,不准哭。");
    }
}

 Main.java

package com.love;

public class Main {
    public static void main(String[] args) {
        System.out.println("🎀 欢迎使用 SweetGirlfriendSimulator 🎀\n");

        // 可爱温柔型女友
        IdealGirlfriend gf = new IdealGirlfriend("小智", 20, "可爱温柔", "陪你写代码");

        gf.introduce();
        gf.saySweetWords();
        gf.cheerYouUp();
        gf.datePlan();
        gf.hug();
        System.out.println("她的爱好是:" + gf.getHobby());
        System.out.println("她是否永远陪着你?" + (gf.isAlwaysWithYou() ? "当然啦!" : "她累了"));

        System.out.println("\n————————————\n");

        // 多态演示:高冷型女友
        IdealGirlfriend coldGf = new CoolGirlfriend(); // 父类引用指向子类对象
        coldGf.introduce();
        coldGf.saySweetWords();  // 调用的是 CoolGirlfriend 的重写方法
        coldGf.cheerYouUp();
    }
}

知识
 

 一、封装(Encapsulation)


 用法:
将属性 name、age、personality、hobby、alwaysWithYou 定义为私有(private),并通过构造器和 getter/setter 控制访问。
解释:
把对象的状态(属性)和行为(方法)封装在类中,并通过方法对外暴露操作接口,保护内部数据不被随意更改。
 项目体现:


private String hobby;
public String getHobby() { return hobby; }
public void setHobby(String hobby) { this.hobby = hobby; }


二、继承(Inheritance)


用法:
类 IdealGirlfriend 继承了 Person 类;CoolGirlfriend 进一步继承自 IdealGirlfriend。
解释:
子类可以继承父类的属性和方法,实现代码重用与扩展,形成类之间的层级关系。
项目体现:


public class IdealGirlfriend extends Person
public class CoolGirlfriend extends IdealGirlfriend


 三、多态(Polymorphism)


 用法:
我们通过 Person 或 IdealGirlfriend 类型的引用,调用实际是 CoolGirlfriend 重写后的方法。
 解释:
同一父类引用,执行不同子类的行为。调用方法时会根据对象的真实类型自动绑定对应的实现,增强了程序的灵活性与扩展性。
 项目体现:


IdealGirlfriend coldGf = new CoolGirlfriend(); // 多态
coldGf.saySweetWords(); // 实际调用 CoolGirlfriend 的实现
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值