Skip to content

Commit b45f7ff

Browse files
committed
add obj & class
1 parent 97919af commit b45f7ff

File tree

9 files changed

+5292
-3523
lines changed

9 files changed

+5292
-3523
lines changed

ch1.md

Lines changed: 391 additions & 359 deletions
Large diffs are not rendered by default.

ch2.md

Lines changed: 1227 additions & 709 deletions
Large diffs are not rendered by default.

ch3.md

100644100755
Lines changed: 1447 additions & 1256 deletions
Large diffs are not rendered by default.

ch4.md

100644100755
Lines changed: 798 additions & 216 deletions
Large diffs are not rendered by default.

ch5.md

Lines changed: 1358 additions & 970 deletions
Large diffs are not rendered by default.

ch6_1.md

100644100755
Lines changed: 71 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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 :
238296
https://github.com/bushehui/Java_tutorial
239297

fig/.DS_Store

-6 KB
Binary file not shown.

fig/LearningJAVA.png

13.5 KB
Loading

fig/object-class.jpg

50.2 KB
Loading

0 commit comments

Comments
 (0)