面向对象编程(Object-Oriented Programming,简称 OOP)的核心,封装、继承、多态

	**面向对象编程(Object-Oriented Programming,简称 OOP)是一种软件开发的编程范式,它以对象作为程序的基本单元,将数据和对数据的操作封装在对象中,通过对象之间的交互来实现程序的功能。**
	​**在实际的软件开发中,面向对象编程是一种广泛使用的编程范式,被多种编程语言所支持,如Java**、C++、Python等。**它提供了一种结构化、模块化和可复用的开发方式,使得程序的设计和维护更加简单和高效。**

面向对象编程的核心思想包括以下几个要素(重点是封装、继承、多态):

  1. 类和对象:类是对象的抽象描述,包括属性(成员变量)和方法(成员函数)。对象是类的一个实例,可以通过实例化类来创建对象。

  2. 封装:将数据和对数据的操作封装在对象中,实现了信息隐藏和访问控制。通过定义公共接口,对外提供访问对象内部数据的方法,可以隐藏实现细节。简称:合理开放,合理暴露。

  3. 继承:通过继承,子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改。继承支持代码重用和多态性的实现。

  4. 多态:多态允许不同类型的对象对相同的消息做出不同的响应。通过方法的重写和接口的使用,可以实现多态性,提高代码的灵活性和可扩展性。

  5. 抽象抽象是将对象的共同特性提取出来形成抽象类或接口,它们定义了一组规范,而不关心具体实现细节。抽象类和接口可以为实现多态和代码复用提供基础。

  6. 关联:对象之间的关联关系描述了它们之间的联系,如聚合、组合和依赖等。关联关系使得多个对象之间可以相互协作完成任务。

面向对象编程具有以下优点:

  • 可维护性:面向对象编程的封装特性使得代码更易于维护和修改。通过将数据和方法封装在对象中,可以降低代码之间的耦合度,减少对其他代码的影响。
  • 可重用性:面向对象编程支持代码的重用,通过继承和组合等机制,可以在不同的地方使用已有的代码,提高代码的效率和开发速度。
  • 可扩展性:**面向对象编程提供了继承、多态等机制,使得系统更容易扩展。**通过添加新的类或者修改现有的类,可以在不改变原有代码的情况下引入新的功能。
  • 可理解性:面向对象编程的语法和概念与现实世界中的实体和关系相对应,使得代码更易于理解和解释。面向对象编程的代码可读性高。

以下是一些常见的面向对象编程的例子:

汽车:将汽车建模为一个类,拥有属性(例如颜色、品牌、型号)和方法(例如启动、加速、刹车)。可以创建多个汽车对象并对其进行操作。

示例如下:

public class Car {
    private String brand;
    private String color;
    private int speed;

    public Car(String brand, String color) {
        this.brand = brand;
        this.color = color;
        this.speed = 0; // 初始速度为0
    }

    public void start() {
        System.out.println("汽车启动");
    }

    public void accelerate(int increment) {
        speed += increment;
        System.out.println("汽车加速到" + speed + "km/h");
    }

    public void brake() {
        speed = 0;
        System.out.println("汽车刹车");
    }
}

在上面的代码中,**Car类表示汽车,具有品牌(brand)、颜色(color)和速度(speed)作为属性。**构造方法用于在创建汽车对象时初始化品牌和颜色,并将速度初始为0。类还定义了三个方法:

start():启动汽车。
accelerate(int increment):加速汽车,根据传入的增量改变速度值,并打印加速后的速度。
brake():刹车,将速度设置为0。
然后我们可以通过创建 Car 类的实例,来模拟创建不同品牌、颜色和行驶状态的汽车,并对它们进行操作。下面是一个使用示例:

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Toyota", "Red");
        myCar.start(); // 汽车启动
        myCar.accelerate(50); // 汽车加速到50km/h
        myCar.brake(); // 汽车刹车
    }
}

在上面的代码中,物品,我们创建了一个品牌为“Toyota”、颜色为“Red”的汽车对象 myCar。然后通过调用对象的方法模拟汽车的行为,包括启动、加速和刹车。

通过这个简单的例子,展示了如何使用面向对象编程来建模和操作汽车。通过对属性和方法的封装,可以将汽车对象视为一个独立的实体,并对其进行操作和管理。

银行账户:将银行账户建模为一个类,包含属性(例如账户持有人姓名、账号、余额)和方法(例如存款、取款、查询余额)。可以创建多个账户对象来模拟银行系统。
代码如下:

public class BankAccount {
    private String accountHolder;
    private String accountNumber;
    private double balance;

    public BankAccount(String accountHolder, String accountNumber) {
        this.accountHolder = accountHolder;
        this.accountNumber = accountNumber;
        this.balance = 0.0; // 初始余额为0
    }

    public void deposit(double amount) {
        balance += amount;
        System.out.println("成功存入" + amount + "元");
    }

    public void withdraw(double amount) {
        if (amount <= balance) {
            balance -= amount;
            System.out.println("成功取出" + amount + "元");
        } else {
            System.out.println("余额不足,取款失败");
        }
    }

    public double getBalance() {
        return balance;
    }
}

在上面的代码中,我们创建BankAccount 类表示银行账户,具有账户持有人(accountHolder)、账号(accountNumber)和余额(balance)作为属性。构造方法用于在创建账户对象时初始化账户持有人和账号,并将余额初始为0。类还定义了三个方法:

  1. deposit(double amount):存款,根据传入的金额增加账户余额。
  2. withdraw(double amount):取款,根据传入的金额减少账户余额。如果账户余额不足,则取款失败。
  3. getBalance():获取账户余额。

我们通过创建 BankAccount 类的实例,可以模拟创建具有不同账户持有人、账号和余额的银行账户,并对其进行操作。

下面是一个示例代码:

public class Main {
    public static void main(String[] args) {
        BankAccount myAccount = new BankAccount("steve", "12345");
        System.out.println("当前余额:" + myAccount.getBalance()); // 当前余额:0.0
        
        myAccount.deposit(1000.0); // 成功存入1000.0元
        System.out.println("当前余额:" + myAccount.getBalance()); // 当前余额:1000.0
        
        myAccount.withdraw(500.0); // 成功取出500.0元
        System.out.println("当前余额:" + myAccount.getBalance()); // 当前余额:500.0
        
        myAccount.withdraw(1000.0); // 余额不足,取款失败
        System.out.println("当前余额:" + myAccount.getBalance()); // 当前余额:500.0
    }
}

在上面代码中,我们创建了一个账户持有人为“steve”,账号为“12345”的账户对象 myAccount。然后通过调用对象的方法模拟账户的存款和取款操作,比如使用 getBalance() 方法获取账户余额。

通过这个例子,我们展示了如何使用面向对象编程来建模和操作银行账户。通过封装属性和方法,可以将账户对象视为一个独立的实体,并对其进行存款、取款和查询余额等操作。

这些都只是一些简单的例子,面向对象编程可以应用于各种各样的场景,从小型应用到大型系统。通过将现实世界的事物抽象为类和对象,并通过封装、继承、多态等特性来管理和组织代码,可以提高代码的可读性、灵活性和可扩展性,以及促进代码复用和维护性。
结尾语:记录于2023年7月24号20时00分,以上仅为个人在菜鸟教程—Java面向对象的学习过程中遇到的问题,还有记录的个人想法,有错误欢迎指出,希望对您有帮助,感谢观看!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stevedash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值