1 / 11
文档名称:

第六章: 面向对象语言(一).doc

格式:doc   大小:70KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第六章: 面向对象语言(一).doc

上传人:qiang19840906 2021/2/25 文件大小:70 KB

下载得到文件列表

第六章: 面向对象语言(一).doc

相关文档

文档介绍

文档介绍:第六章 面向对象程序设计—类的定义及使用
[主要内容及技能要求]
1、会定义一个完整的java类
2、会区分java类的限定符及含义
3、会创建java子类
一、Java中的类
在Java程序中,类是由定义和主体构成的。下图是一个完整的类定义过程。
说明:
· 类的定义部分定义了类的名称和其它属性,关键字“public”说明类的属性是公有的,“class”说明这是一个类,“Calculator”是类名。
· 类的主体紧跟着定义部分,主体部分的内容用花括号{}括起来。
· 类的主体中包括所有的成员变量定义,以及构造函数、成员函数的定义与实现
1、完整的类定义格式:
[Public] [abstract] [final] class 类名 [extends 父类名] [implements 接口名]
{
类的主体
}
类定义中,必需的部分是 “class”关键字和类的名字,其它部分都是可选的。
类定义中的关键字含义:
· public:表示这个类不但能被同一个包中的其它类访问,而且能被其它包中的类访问。
· 缺省情况下,类只能由和它在同一个包中的其它类访问。
· abstract:表示这个类是抽象类,不能被实例化,也就是说不能定义这个类的对象。
· final:表示这个类是最终类,它不能有子类。
· class 类名:表示这是一个类,后面紧接着的就是类的名字。这一项是必需项。
· extends 父类名:指示它所继承来的类的名称,也就是父类的名称
· implements 接口名:表示这个类实现一个或多个接口,如果有多个接口,接口名之间应当用逗号隔开。
·类的主体中包括构造函数、成员变量、成员函数和finalize函数。
2、成员变量与成员函数
(1)成员变量
成员变量是属于一个类的变量,成员变量的定义应该写在类的主体里,但是不要写在成员函数或构造函数内。
成员变量的完整定义形式如下:
[accessLevel] [static] [final] type name
说明:
· accessLevel:用于控制其它类是否能够访问这个成员变量的访问级别,访问级分4级:
“public”表示这是一个公有变量,也就是说其它类的成员函数也可以访问该变量。
“private”表示私有变量,也就是说只有自己类的成员函数可以访问变量。
“protected”表示是保护级变量。
“package”是默认的访问级。
· static:表示静态变量,也叫做类变量,静态变量是这个类和它的所有实例(对象)所公有的变量,静态变量属于类,而不属于任何对象,但是对象可以访问本类的静态变量
静态变量在类出现以后就会出现,即使没有生成类的任何对象,静态变量依然存在。
· final:表示这是最终成员变量,也就是说变量的值在初始化之后就不能改变了,与普通的最终变量不同的是最终成员变量必须在定义时就初始化,而不能在程序的其它地方初始化。
例如:
public class MathConst {
public final double PI = 3.;//类似C中的常量。
}
· type:和其它变量一样,成员变量也要有类型,可以用简单变量类型,也可以用数组、类等作为成员变量类型。
· name:成员变量名也是必需项,它的命名要求与普通变量名相同,在一个类里,你不能定义两个相同名称的成员变量,但允许成员变量和成员函数起相同的名字。
例如:
public class Calculator {
public double a, b;
public double add;
public double add() {
return(a + b); } }
(2)成员函数
成员函数与类相似,是由函数定义和函数主体构成的,如下图所示:
函数和子程序的区别是:函数会返回一个值,而子程序不返回任何值,有些语言区分函数和子程序,前者返回一个值,后者不返回任何值,Java语言中不区分二者,如果返回类型为“void”,则不返回任何值,相当于子程序。一个函数可以带有一个或多个参数,也可不带参数。
思考:当函数体中定义的变量与类的成员变量名一样时,该怎么区分呢?
例如:
例如:
public class Circle {
public int x, y, radius;
public Circle(int x, int y, int radius) {
= x; } } //用this来区分
返回值:作用是将函数的结果传递出来