@@ -5,11 +5,11 @@ title: Java语言面向对象
55
66[ TOC]
77
8- #类和对象
8+ # 类和对象
99
10- ##面向对象概述
10+ ## 面向对象概述
1111
12- ###面向过程编程:
12+ ### 面向过程编程:
1313
1414__ Fortran__ 、__ Basic__ ,__ C__ 等面向过程的程序设计语言,是按流程化的思想来组织的。
1515
@@ -30,7 +30,7 @@ __Fortran__、__Basic__,__C__等面向过程的程序设计语言,是按流
3030==在这种应用方式中,如果软件项目庞大,程序的调试和维护将变得异常困难。==
3131
3232
33- ###面向对象编程:
33+ ### 面向对象编程:
3434
3535面向对象的程序设计思想是==将数据以及对于这些数据的操作,封装在了一个单独的数据结构中。==
3636
@@ -55,9 +55,9 @@ __Fortran__、__Basic__,__C__等面向过程的程序设计语言,是按流
5555其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。
5656
5757
58- ##面向对象的三大特点:封装, 继承, 多态
58+ ## 面向对象的三大特点:封装, 继承, 多态
5959
60- ###封装
60+ ### 封装
6161__ 封装__ 就是把对象的属性和和对这些属性的操作封装在一个单独的数据结构中,并尽可能隐蔽对象的内部细节,包含两个含义:
6262
6363- 把对象的全部属性和对属性的全部操作结合在一起,形成一个不可分割的独立单元(即对象)。
@@ -69,7 +69,7 @@ __封装__就是把对象的属性和和对这些属性的操作封装在一个
6969通过访问控制,还可以隐藏内部成员,只允许可信的对象访问或操作自己的部分数据或方法==
7070
7171
72- ###继承
72+ ### 继承
7373
7474__ 继承__ 是一种由已有的类创建新类的机制。
7575
@@ -89,7 +89,7 @@ __继承__是一种由已有的类创建新类的机制。
8989
9090
9191
92- ###多态(polymorphism)
92+ ### 多态(polymorphism)
9393
9494__ 多态__ 是指同样的消息被不同类型的对象接收时导致完全不同的行为。
9595多态性允许每个对象以自己的方式去响应共同的消息,从而允许用户以更明确的方式建立通用软件,提高软件开发的可维护性。<br >
@@ -109,7 +109,7 @@ __多态__是指同样的消息被不同类型的对象接收时导致完全不
109109如果要扩展软件的功能,例如增加图形Eclipse,则只需要增加新的子类,并实现其绘制方法(draw)即可。
110110
111111
112- ###客观事物的抽象
112+ ### 客观事物的抽象
113113
114114为了使计算机能够处理和理解客观事物,==必须对事物进行抽象,以求得事物的本质。==
115115
@@ -156,7 +156,7 @@ class Circle {
156156
157157---
158158
159- ##对象(object)
159+ ## 对象(object)
160160
161161对象(object)是现实世界的实体或概念在计算机逻辑中的抽象表示。<br >
162162在面向对象系统中,是系统中用来描述客观事物的一个实体,构成系统的一个基本单位。
@@ -179,14 +179,21 @@ __属性__和__服务__是构成对象的两个主要因素,属性是一组数
179179- 5.动态连接性
180180- 6.易维护性
181181
182+ 对象是类的一个实例(对象不是找个女朋友),有状态和行为。
183+ 例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
182184
183- ##类(class)
185+ ## 类(class)
184186
185187在面向对象的编程语言中,类(class)是一个独立的程序单位,是对具有相同属性和方法的一组对象的抽象。
186188
187189通过类可以对属于该类的全部对象进行统一的描述。
188190因此,在定义对象之前应先定义类。
189191
192+ ** 类是一个模板,它描述一类对象的行为和状态。**
193+
194+ 下图之中男孩女孩为类,而具体的每个人为该类的对象。
195+ ![ ] ( fig/object-class.jpg )
196+
190197描述一个类需要指明下述三个方面:
191198
192199- (1)类标识(即类名)
@@ -211,7 +218,35 @@ public class Rectangle extends Shapes implement Display{
211218// 下面的Rectangle类继承了Shapes父类,实现了接口 Display,是一个公共类。
212219~~~
213220
214- ##消息(message)
221+
222+ ### 类变量
223+ 一个类可以包含以下类型变量:
224+
225+ - ** 局部变量** :在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
226+ - ** 成员变量** :成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
227+ - ** 类变量** :类变量也声明在类中,方法体之外,但必须声明为static类型。
228+
229+ ### 构造方法
230+
231+ 每个类都有构造方法。
232+ 如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
233+
234+ 在创建一个对象的时候,至少要调用一个构造方法。
235+ 构造方法的名称必须与类同名,一个类可以有多个构造方法。
236+
237+ ### 创建对象
238+
239+ 对象是根据类创建的。
240+ 在Java中,使用关键字** new** 来创建一个新的对象。
241+
242+ 创建对象需要以下三步:
243+
244+ - ** 声明** :声明一个对象,包括对象名称和对象类型。
245+ - ** 实例化** :使用关键字** new** 来创建一个对象。
246+ - ** 初始化** :使用** new** 创建对象时,会调用构造方法初始化对象。
247+
248+
249+ ## 消息(message)
215250
216251消息(message)是面向对象系统中实现对象间的通信和请求任务的操作,是要求某个对象执行其中某个功能操作的规格说明。<br >
217252发送消息的对象称为发送者,接受消息的对象称为接收者。<br >
@@ -225,7 +260,7 @@ public class Rectangle extends Shapes implement Display{
225260- (3)消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必需的。
226261
227262
228- ##面向对象系统的特性
263+ ## 面向对象系统的特性
229264
230265- 1.抽象性(abstract)
231266- 2.封装性(encapsulation)
@@ -234,6 +269,29 @@ public class Rectangle extends Shapes implement Display{
234269
235270---
236271
272+
273+ # 源文件声明规则
274+ 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。
275+
276+ - 一个源文件中只能有一个public类
277+ - 一个源文件可以有多个非public类
278+ - 源文件的名称应该和public类的类名保持一致。
279+
280+ 例如:源文件中** public** 类的类名是** Employee** ,那么源文件应该命名为** Employee.java** 。
281+
282+ - 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
283+ 如果源文件包含import语句,那么应该放在package语句和类定义之间。
284+ 如果没有package语句,那么import语句应该在源文件中最前面。
285+
286+ - import语句和package语句对源文件中定义的所有类都有效。
287+ 在同一源文件中,不能给不同的类不同的包声明。
288+
289+ - 类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。
290+
291+ - 除了上面提到的几种类型,Java还有一些特殊的类,如:** 内部类** 、** 匿名类** 。
292+
293+ ---
294+
237295本文档 Github :
238296https://github.com/bushehui/Java_tutorial
239297
0 commit comments