Java的面向对象介绍

什么是面向过程

面向过程(Procedural Programming)是一种编程范式,它侧重于通过一系列顺序执行的过程或函数来解决问题。在面向过程编程中,程序的结构是通过一组子程序、函数或过程来组织的,这些过程可以相互调用以完成特定任务。数据和操作数据的函数在此范式中是分离的,这意味着数据和处理数据的函数是独立的。

什么是Java的面向对象

面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它使用“对象”来表示现实世界中的事物。每个对象都包含数据(称为属性)和一组操作这些数据的方法。Java是一种面向对象的编程语言,它遵循面向对象的核心概念和原则。

为什么要使用Java面向对象

在Java中,面向对象编程允许开发人员更好地组织和管理代码,降低复杂性,提高可维护性。通过使用面向对象的设计原则,如封装、继承和多态,Java程序员可以创建可重用、可扩展和易于维护的软件系统

面向对象中的概念

- 四大特性

  1. 封装(Encapsulation):封装是将对象的属性和方法包装在一起的过程。它可以隐藏对象的内部实现细节,只通过对象的公共接口暴露必要的功能。封装有助于保护对象的数据,防止外部代码直接访问或修改它们。
  2. 继承(Inheritance):继承是一种子类可以继承父类的属性和方法的机制。这使得代码可以复用,子类可以在不修改父类的情况下扩展或覆盖父类的功能。
  3. 多态(Polymorphism):多态是指允许多个类共享相同的接口,但具有不同的实现。这意味着,可以在运行时根据对象所属的类来选择适当的方法实现。这有助于提高代码的灵活性和可扩展性。
  4. 抽象(Abstract):抽象是指从具体事物中提取出其共同的、本质的特征,以形成一个更通用的概念。在Java中,抽象可以通过抽象类(abstract)和接口(interface)来实现。抽象类和接口可以定义公共的属性和方法,供子类或实现类继承和实现。抽象提高了代码的可扩展性和可维护性。

- 五项原则

  1. 单一职责原则(Single Responsibility Principle,
    SRP)
    :一个类应该只有一个原因引起变化。换句话说,每个类应该只负责一个特定的功能。这有助于保持类的简洁和清晰,提高代码的可维护性。
  2. 开放封闭原则(Open/Closed Principle,
    OCP)
    :软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。这意味着在不修改现有代码的情况下,应该能够通过扩展来满足新的需求。这可以通过使用接口、抽象类和继承来实现。遵循开放封闭原则有助于提高代码的可扩展性和可维护性。
  3. 里氏替换原则(Liskov Substitution Principle, LSP):子类型必须能够替换其父类型,并且替换后程序的行为不受影响。这意味着子类应该遵循父类的行为约定,不应该改变父类所定义的行为。遵循里氏替换原则有助于确保继承关系的正确性,提高代码的可维护性。
  4. 接口隔离原则(Interface Segregation Principle, ISP):客户端不应该被迫依赖于它不使用的接口。这意味着应该将大型、复杂的接口分解为多个小型、简单的接口,以便客户端只需依赖于它们真正需要的接口。遵循接口隔离原则有助于减少不必要的依赖关系,提高代码的可维护性和灵活性。
  5. 依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖于低层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。这意味着在设计时,应该优先考虑使用接口和抽象类,而不是具体的实现类。遵循依赖倒置原则有助于降低代码之间的耦合度,提高代码的可维护性和可扩展性。

面向对象的四项特性使用代码示例

1. 封装

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

    public BankAccount(String accountNumber, double initialBalance) {
   
        this.accountNumber = accountNumber;
        this.balance = initialBalance;
    }

    public String getAccountNumber() {
   
        return accountNumber;
    }

    public double getBalance() {
   
        return balance;
    }

    public void deposit(double amount) {
   
        if (amount > 0) {
   
            balance += amount;
        } else {
   
            System.out.println("Invalid deposit amount.");
        }
    }

    public boolean withdraw(double amount) {
   
        if (amount > 0 && amount <= balance) {
   
            balance -= amount;
            return true;
        } else {
   
            System.out.println("Invalid withdrawal amount.");
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值