大家好,这里是白子茶。
学习面向对象有三条主线:
Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类
面向对象的特征:封装、继承、多态、(抽象)
其他关键字的使用:this、super、package、import、static、final、interface、abstract等
面向对象,是一种编程范式,除了面向对象,还有面向过程编程,其代表就是大名鼎鼎的C语言。
(这里之所以提到面向过程,是因为很多初学者学习的第一门语言是C语言,以及我们学习面向对象前学习的流程控制,数组等,都属于面向过程编程)
注意:面向对象和面向过程不是对立的,它们相辅相成,面向对象是万万离不开面向过程的。
早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的
弊端
越来越明显,于是出现了面向对象思想并成为目前主流的方式。
面向过程(简称POP):
-
代码结构:是以 函数 为组织单位,
-
是一种执行者思维,适合解决简单问题,扩展能力差、后期维护难度较大。
面向对象 (简称OOP):
-
代码结构:以 类 为组织单位。每种事物都具备自己的 属性 和 行为/功能 。
-
是一种“ 设计者思维 ”,适合解决复杂问题。代码扩展性强、可维护性高。
如何简单的理解面向过程和面向对象呢?
举个例子。
比如开车,我们需要点火、踩离合挂挡、松离合踩油门、然后直接开走。
这一套操作就属于面向过程,
对于造车,就没这么简单了,我们没有办法用一套标准的通用方法生产出来,怎么办?
造车太复杂,需要
很多协作
才能完成。此时我们思考的是
“
车怎么设计?
”
,而不是
“
怎么按特定步骤造 车的问题”
。这就是思维方式的转变,前者就是面向对象思想。所以,面向对象
(Oriented-Object)
思想更 契合人的思维模式。
自然的,我们会思考,车是怎么构成的?
![](https://img-blog.csdnimg.cn/direct/83023a257fba4c47b6f9cde58c9812dd.png)
我们找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤,
...
;这样,大家可以同时进行车 的制造,最终进行组装,大大提高了效率。但是,具体到轮胎厂的一个流水线操作,仍然是有步骤的, 还是离不开面向过程思维!
因此,
面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。
但是,具体到实现部分的微观操 作(就是一个个方法),仍然需要面向过程的思路去处理。
所以,我之前提到的,面向对象和面向过程是相辅相成的,不可对立。
记住一点即可。
当需求单一,或者简单时,我们一步步去操作没问题,并且效率也挺高。
可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始思索,
能不能
把这些步骤和功能进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一
起。
这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。
2. Java
语言的基本元素:类和对象
2.2
类和对象概述
类
(Class)
和
对象
(Object)
是面向对象的核心概念。
1
、什么是类
类
:具有相同特征的事物的抽象描述,是
抽象的
、概念上的定义。
2
、什么是对象
对象
:实际存在的该类事物的
每个个体
,是
具体的
,因而也称为
实例
(instance)
。
可以理解为:
类
=>
抽象概念的人
;
对象
=>
实实在在的某个人
例如,我们创造一个类,名为People.
public class people{...}
我们赋予他/她,吃饭、睡觉、行走的功能。
我们在创造一个对象:
People Tom = new People();
我们创造的Tom,属于实实在在的一个对象,而不是抽象意义上,会吃饭睡觉行走功能的生物。