CodeGym /Java 课程 /Java 核心 /OOP:基本原理

OOP:基本原理

Java 核心
第 1 级 , 课程 1
可用

“你好,阿米戈!今天,我会为你打开一个奇妙的新世界。那就是面向对象的编程 (OOP)。你已经知道什么是类,什么是对象。今天,我们会进一步学习这两个概念以及其他相关内容。”

首先,我们来看一下 OOP 的四大支柱。它们分别是抽象、封装、继承和多态。(过去,只有三大支柱,抽象是后加的)

1) 抽象。

现实生活中,最能体现抽象这个概念的当属公司的职位简介。职称是一码事,它所对应的职责又完全是另外一码事。

假如,你正在为你未来的公司编写组织架构图。你可能会把秘书的职责进行细分,划归到多个其他岗位里。你可能会把 CEO 的工作拆分成几个独立的岗位:首席财务官、首席技术官、首席市场营销官、首席人力资源官。又或者,你可以把办公室经理和招聘专员这两个岗位合并成一个。

假如,你拟定好了公司各岗位的名称,之后,你就会为这些岗位“分配”好对应的职责。这就是抽象:把庞大的东西拆分成多个细小的部分。

OOP:基本原理 - 1

就程序员而言,抽象就是把一个程序妥善地分成多个对象。

一个大程序通常是多个对象通过各种各样的方法进行交互。通过抽象,你可以选出一个对象的主要特性,忽视其他不重要的信息。

抽象就好比军事战略。如果你的战略选错了,任何巧妙的战术都无力回天。

2) 封装。

封装主要是通过简化对象来提高对象之间的交互。

OOP:基本原理 - 2

简化,最好的办法就是隐藏掉那些别人不需要知道的复杂信息。例如,如果你坐在波音飞机驾驶控制台前,你要花很长时间去弄懂它们的运作原理:

OOP:基本原理 - 3

但若换做是飞机上的乘客,一切就将变得简单多了:他们买票,然后登机、起飞、到达目的地。你可以轻松地从一个大陆飞往另一个大陆,只要知道怎怎么“买票”,怎么“登机”就行。我们看不到整个过程有多复杂:从起飞前的相关准备工作,到起飞、着陆以及各种潜在紧急情况。更不要说卫星导航、自动驾驶和空中交通管制中心了。这让我们的生活变得简单。

从程序设计角度来说,封装就是“把实现隐藏起来”。我很喜欢这个解释。我们的类包含成百上千个方法,在不同的情境里实现高度复杂的行为。但是,我们可以把这些方法全部隐藏起来(标为 private 即可),只留 2 到 3 个方法用于与其他类进行交互(标为 public 即可)。之后,我们程序里的所有其他类都只能看到(和调用)这类里为数不多的几个方法。类的复杂性都被藏起来了,就像飞机上快乐的旅客都看不到驾驶舱一样。

3) 继承。

编程和现实生活里都有继承这个概念。在编程里,继承是指两个类之间的一种特殊关系。但现实生活里,继承所指的就有趣得多了。

现实生活里,我们若要创造一个东西,有两种办法:

1) 从零开始,投入大量时间和精力去创造。

2) 利用现有的,去制造我们想要的。

最好的办法是:我们利用现有的好解决方案,改造或微调使其符合我们的需求,最后投入使用。

想想人类的进化。如果我们把人类的起源一直追溯到地球上的生命起源,我们会发现这中间有数十亿年那么漫长。但如果我们把猴类作为人类的起源,那这中间就只有几百万年那么长。从零开始,需要很长很长一段时间才能创造新物种。非常漫长。

与此类似,在编程里,我们可以在一个类的基础上来创造出一个新类。新类就会成为现有类的子类(继承人)。如果有一个类,你想要的 80-90% 的数据和方法都在里面,这时,继承就会非常有用。我们只要简单地声明某个适用的类是新类的父类即可。父类所有的数据和方法就自动成为新类的一部分。非常方便,对吗?

4) 多态。

多态是一个编程概念,它是指同一个接口里不同实现被隐藏起来的情况。若是要在现实生活中找个例子的话,不妨来看看开车这个动作。

如果一个人会开卡车,那他或她十之八九也会开救护车或者跑车。一个人会开车,就不会拘泥于开的是哪种车,因为它们有相同的控制接口:方向盘、脚踏和变速杆。汽车虽然内部构造不同,但控制接口是相同的。

回到编程,多态让我们能够与不同类的对象进行交互(这些类有同一个父类),且交互方法不变。多态的重要性不容小觑。程序越大,多态就越重要。

OOP 是基本原理,编程是规则。它们都在通过某种方式规范着我们,但同时在程序逐渐变大的过程中,给我们带来巨大优势OOP 的四大基本原理就像是一张椅子的四条腿。随便拿走其中的任何一个,整个系统都会变得不稳定。

评论 (10)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
17022 级别 26,Guangzhou,China
5 六月 2024
抽象,封装,继承,多态。 抽象:公司职称,职责,,把一个程序妥善的分为多个部分; 封装:把实现隐藏(private)起来,只开放部分方法(public);通过简化对象来提高交互 例子:飞机的机长组和乘客, 继承:新类继承父类的方法 多态:多态与不同的对象(有同一个父类)交互 例子:如果一个人会开卡车,那他或她十之八九也会开救护车或者跑车
级别 22,China,China
3 七月 2023
KAI 级别 22,Wenzhou,China
11 五月 2023
抽象 封装 继承 多态
Super Ego 级别 14,Wu Han,China
6 三月 2023
我终于来了,第8级卡了好久!!!
Qin-1999 级别 22
6 一月 2024
2024了!!!
拔萝卜滴🐰 级别 22,chengdu,China Expert
8 二月 2023
个人总结,有误的地方请补充
hello world 级别 22,shanghai,China
22 十月 2021
好家伙,正片才刚刚开始
豪爷 级别 13,Changsha
13 七月 2021
抽象、封装、继承、多态是OOP思想的核心
祖安文科状元 级别 17,SuZhou
30 五月 2021
学校老师讲三大基本规则:封装、继承、多态
TaoLu 级别 20,泾县,China
10 三月 2021
OOP 的四大基本原理就像是一张椅子的四条腿。