软件构造课程笔记(七)

Object-Oriented Programming (OOP)

1. 面向对象编程 (OOP) 的基本概念

  • 对象 (Object):对象具有状态和行为,例如,狗有状态(名字、颜色、品种、饥饿)和行为(叫、取物、摇尾巴)。
  • 类 (Class):类定义了对象的属性和方法。类是对象的蓝图,每个对象都是一个类的实例。
  • 属性 (Attribute)方法 (Method):属性是对象的数据,方法是对象的行为。

2. OOP 的主要特性

  • 封装 (Encapsulation)信息隐藏 (Information Hiding):通过将数据和操作封装在对象内部,只通过对象的接口与外部交互,隐藏实现细节。
  • 继承 (Inheritance)重写 (Overriding):子类继承父类的属性和方法,并可以对其进行重写,以提供特定实现。
  • 多态 (Polymorphism)子类型 (Subtyping):不同类型的对象可以统一处理,不需要区分具体类型。利用子类型,父类型的对象可以被子类型的对象替换,而不影响程序运行。

3. 类与对象的设计

  • 可变类 (Mutable Class):类的实例可以更改其状态。适用于表示状态变化的实体,如银行账户、交通信号灯等。
  • 不可变类 (Immutable Class):类的实例一旦创建,其状态就不能改变。具有简单性、本质线程安全、可自由共享等优点。设计不可变类时应确保所有字段为final和private,并避免暴露可变组件 。

4. 设计良好的类

  • API 设计:只提供客户需要的功能,其他成员应设置为private。API应与实现细节分离,模块间仅通过API通信,隐藏实现细节有助于模块的独立开发、测试和优化。
  • 信息隐藏的好处:解耦系统组成部分,加快开发速度,简化维护,提高性能调优效果,增加软件重用性 。

5. Java中的重要对象方法

  • equals():判断两个对象是否相等。
  • hashCode():为对象生成哈希码,用于哈希映射。
  • toString():返回对象的字符串表示,通常需要重写以提供有用的信息 。

6. 不可变类的实现

  • 不提供任何修改器方法。
  • 确保所有字段为final和private。
  • 实现toString(), hashCode(), equals()等方法,确保任何可变组件的安全性 。

7. OOP 的历史

  • 1960年代:Simula 67是第一个面向对象语言,由Kristin Nygaard和Ole-Johan Dahl开发,用于支持离散事件模拟。
  • 1980年代:面向对象编程变得显著,C++是主要因素之一。其它语言包括Eiffel和Java 。

本次课程详细介绍了面向对象编程的基本概念、特性、设计原则、重要方法及其历史发展,有助于理解和应用OOP思想进行软件开发。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值