Java面向对象的程序设计.doc
文本预览下载声明
面对对象的程序设计
一、面对对象的基本概念
1.面对对象的术语(核心:类和对象)
1对象
(1)现实世界中的对象
对象可以是有生命的个体、无生命的个体、抽象的概念。
(2)程序员严重的对象
程序员眼中的对象具有属性(也成为成员变量)和行为(也称为成员方法)。
2类
(1)类的概念
将相同的对象归并为一个“类”。
(2)类的实例化
类是同类对象的集合,因此类和对象的关系是整体和个体的关系。从个体(对象)进行抽象,得到整体(类)的概念;从整体(类)进行实例化,得到个体或实例(对象)。因此,对象也称为类的实例,从类中导出实例的过程称为类的实例化。
类的每个实例(对象)具有相同的属性和行为,但是属性的值是各有不同的。
3消息
用面向对象的术语来表示这种交互,称为传递消息,即“发消息给某个对象”。
2.面向对象的基本特征
1封装性
封装是把属性和方法包装起来,只将必要的信息暴露给外界,而将其他信息隐藏起来,以防止外界的干扰和误用,从而实现信息隐藏及模块化。
封装可以实现对象的设计者和使用者的分离,使用者不必知道行为实现的细节只需要知道如何传递消息(即如何调用方法)即可。
2继承性
继承的最大好处是代码复用。如:子类、继承类复用超类、父类、基类的代码。
3多态性
多态是指一个方法只有一个名称,但可以有多种行为,即程序中可以定义多个同名的方法,从而解决同名方法的问题。不仅如此,还需要解决在执行过程中,动态地确定实际调用方法的哪个版本的问题。
3.类的封装
封装性是面向对象程序设计的基本特征。类的封装是通过类的声明来实现的,将类的属性(成员变量)和行为(成员方法)定义在类的内部,从而实现了类的封装。Java语言是完全面向对象的编程语言,所有元素都是被封装在类中的。
Java语言中的类分为两部分,一部分是类库,另一部分是用户自定义的类。
4.类的声明
声明类的语法格式如下:
【类修饰符】 class 类名 【extends基类】 【implements 接口列表】{
【成员变量声明】
【构造方法定义】
【成员方法定义】
}
类修饰符【可选】:有public、final等
类名:类的名字
基类【可选】:继承基类,只能继承一个基类
接口列表【可选】:实现接口,可以实现多个接口
类体:用一对花括号括起来的类体,类体中可以有成员变量声明、构造方法定义和成员方法定义
在类中声明成员变量和定义成员方法,体现了类的属性和行为。
通常一个类对应一个源代码文件,在文件的命名方面需要注意以下几点。
如果一个源代码文件中包含有公开(public)类的定义,则该源代码文件名必须与该公开类的名字完全一致,字母的大小写都必须一样。
一个源代码文件中最多只能有一个公开类的定义。
如果一个源代码文件中不包含公开类的定义,则该文件名可以任意取名,但建议与其中的一个类名完全相同。
如果在一个源代码文件中有多个类定义,则在编译时将每个类生成一个.class文件,.class文件的文件名与类名相同,而与源代码文件名无关。
在同一个包中不能有同名的类存在,不论是在同一个源代码文件中,还是在不同的源代码文件中。
5. 成员变量
Java语言中的变量有4种,即成员变量、局部变量、方法参数变量和异常处理参数变量。成员变量体现的是类的属性,因此它被称声明在类的内部和方法的外部。
1成员变量的声明
声明成员变量的语法格式如下:
【变量修饰符】 数据类型 变量名 【 = 初始值】;
变量修饰符【可选】:有public、private、static等。
数据类型:变量的数据类型,可以是基本数据类型,也可以是引用数据类型。
变量名:变量的名字。
初始值【可选】:它的数据类型应该与变量的数据类型一致。
成员变量与局部变量的比较如下:
功能不同:成员变量体现的是类的属性,而局部变量只是临时保存变量的值。
声明的位置不同:局部变量是声明在方法的内部,而成员变量是声明在方法的外面和类的内部。
作用域范围不同:成员变量的作用域范围是整个类,不论成员变量声明在方法的前面或后面,而局部变量的作用域范围是从声明开始处直到语句块的结束。
修饰符不同:局部变量只有一个修饰符final,其它的修饰符都不能用。
默认值不同:局部变量声明后不被初始化,成员变量声明后被自动初始化(基本类型被初始化为默认值,引用数据类型被初始化为(null)。
2成员变量的引用
1)同一类中的引用。引用同一个类中的成员变量,可以直接通过变量名引用。如果存在同名的局部变量、方法参数变量或异常处理参数变量,则需要在成员变量前加上关键字this,例如:
This.age = age;
等号左边的this.age引用的是成员变量,等号右边的age引用的是同名的局部变量、方法参数变量或异常处理参数变量。还需要注意以下两点:
如果不存
显示全部