Java 【Testing Career】关于面向对象编程思想的理解

thinker543 · 2023年02月17日 · 1540 次阅读

1 什么是对象?

对象:将问题空间中的元素在解空间中的表示; 我理解是考虑现实中要处理的问题如何映射的解空间,问题空间的元素映射到解空间称为对象。在解空间中,通过针对对象的操作进行问题解决的。通过自定义类型来适应问题,而不用再被迫只能使用现有的机器中的存储单元的数据类型来解决问题。

如果使用汇编语言,要考虑到如何解决问题,还要考虑到如何 “命令” 计算机,即从计算机运行机制考虑解决现实问题。当使用到面向对象编程的语言,考虑现实问题如何抽象成对象,换一种表现方式,而对象怎么在计算机中运行,就不用考虑了,有大神在做了。

2 面向对象编程

Alan Kay 总结了面向对象语言的 5 个特性:

  • 万物皆对象;
  • 程序是对象的集合,它们通过发消息来通知彼此;
  • 每个对象都有自己的由其他对象所构成的存储;
  • 每个对象都有其类型;
  • 某一特定类型的所有对象都可以接收同样的消息;

抽象

抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。【现实事务】-- 抽象-->【对象】-- 抽象-->【类】

继承
类与类之间的功能相似也有差异,通过继承可以使类型的层次结构清晰,提高代码复用。继承基类,导出类既可以服用相似代码,又可以根据实现新方法满足新需求。

多态
多态通过分离做什么和怎么做分离出来,改善了代码组织结构和可读性,还能创造可扩展的程序。其作用是消除类型之间的耦合关系。

组合
复用某个类的最简单的方式是直接使用该类的一个对象。将一个类的对象置于某个类中,合成新类的方式成为组合。

封装
隐藏内部细节。为什么要隐藏内部细节?类创建者(创建新数据类型的程序员)和客户端程序员(使用数据类型的消费者),将创建者和消费者隔离,有助于创建者的修改和消费者的调用,如果不隔离,消费者可以随便修改创建者的类,那么其他的消费者在修改前的调用就可能出现问题。访问权限控制也起到隐藏内部细节的作用。

3 我的理解

现实世界需要解决的问题抽象成对象,对象之间传递消息是处理问题的过程。将内部细节进行封装后,限制访问权限,就可以起到隐藏实现的作用,保护该类的创建者修改的时候免受干扰。继承可以提高代码复用,合理的继承让代码结构清晰。多态,多种形态,目的达到可以用不同的方式,继承的使用也是多态的形式。

参考:《Java 编程思想》

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册