面向对象技术基础课件

上传人:F****n 文档编号:88252750 上传时间:2019-04-22 格式:PPT 页数:42 大小:166.50KB
返回 下载 相关 举报
面向对象技术基础课件_第1页
第1页 / 共42页
面向对象技术基础课件_第2页
第2页 / 共42页
面向对象技术基础课件_第3页
第3页 / 共42页
面向对象技术基础课件_第4页
第4页 / 共42页
面向对象技术基础课件_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《面向对象技术基础课件》由会员分享,可在线阅读,更多相关《面向对象技术基础课件(42页珍藏版)》请在金锄头文库上搜索。

1、第4章 面向对象程序设计基础,主要内容,4.1 面向对象的基本概念 4.2 类的定义 4.3 类和对象的使用 4.4 包package 4.5 成员变量及方法的访问权限 4.6 final、this及其它,4.1面向对象编程的概念,面向对象程序设计 基本思想: 将数据以及对于这些数据的操作,封装在一个单独的数据结构中。 所有的对象都同时拥有属性以及与这些属性相关的行为。 对象之间的联系是通过消息来实现的。 基本概念: 类、对象、封装、继承、消息 三大特点 封装、继承、多态,4.1面向对象编程的概念,1)封装 封装就是把对象的属性和和对这些属性的操作封装在一个单独的数据结构中,并尽可能隐蔽对象的

2、内部细节,包含两个含义: 把对象的全部属性和对属性的全部操作结合在一起,形成一个不可分割的独立单元(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。,4.1.1面向对象编程的概念,2)继承 继承是一种由已有的类创建新类的机制. 利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类。 新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类或超类。 Java不支持多重继承,子类只能有一个父类。,4.1.1面向对象编程的概念,3)多态

3、 对象的多态是由封装和继承引出的面向对象程序设计语言的另一特征。 多态主要体现在两个方面:方法重载时实现的静态多态和方法重写时实现的动态多态。,第4章 面向对象程序设计基础,4.1 面向对象的基本概念 4.2 类的定义 4.3 类和对象的使用 4.4 包package 4.5 成员变量及方法的访问权限 4.6 final、this及其它,4.2 类的定义,4.2.1 类声明 4.2.2 类体 4.2.3 实例化对象 4.2.4 构造方法说明 4.2.5 对象的清除 4.2.6 方法重载,4.2.1类声明,类声明的格式如下: 修饰符 class 类名 extends 父类名 implements

4、接口名列表 修饰符可能的选项有: publicabstract|final public(公共):public修饰的类能被所有的类访问。 abstract(抽象):abstract修饰的类不能被实例化,它包含 有未实现的方法。 final(最终):final修饰的类不能被继承,即不能有子类。 注意: abstract和final不能同时作为一个类的修饰符。 当一个类有多个修饰符时,这些修饰符无先后顺序之分。,4.2.1类声明,extends(继承): extends保留字用来表明新创建的类继承哪个类,被继承的类称为此类的父类。extends后面只能跟一个父类名。 implements(实现):

5、 用来表明这个类实现了哪些接口,接口名可以有多个。 例如:下面的类是合法的: class MyClass /空类,没有任何用处,但是合法 又如:下面的Rectangle类继承了Shapes父类,实现了接口Display,是一个公共类。 public class Rectangle extends Shapes implement Display / 类体 ,4.2.2类体,类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下: 成员变量说明 成员方法说明 ,4.2.2类体,1成员变量说明 成员变量又称值域。成员变量定义在类中,是类成员的一部分,整个类都可以访问它。Java中成员变量

6、说明形式如下: 修饰符 成员变量类型 成员变量名列表; 例如:private int number; 成员变量的修饰符有以下几种:缺省访问修饰符、public、protected、private、final、static、transient和volatile。 关于这些修饰符的含义以后将讲到。,4.2.2类体,2成员变量使用 (1)类的成员变量在定义它的类内部,可以直接通过成员变量名来访问。 类成员变量 类变量(用static修饰) 实例变量 (2)从类的外部访问,类变量和实例变量的使用方法是不同。 访问类变量的格式:类名.类变量名 访问实例变量的格式如下:对象名.实例变量名,class Ci

7、rcle static final float PI=3.1415926f; / 常量 private Point center; / private float radius; /实例变量 static Color color; /类变量 public float area; float getArea() /实例方法 area= radius*radius*PI; return area; /内部访问成员变量 访问: Circle c1=new Circle(); /c1是对象名 System.out.println(“area=”+c1.area); System.out.println

8、(“Color=”+Circle.color);,4.2.2类体,3、成员方法说明 Java通过类的方法,改变对象的状态。 方法说明分为方法首部说明和方法体两部分。 方法首部说明的格式如下: 方法修饰符 返回值类型 方法名(形参列表)throws异常列表 方法修饰符可能的选项有: public | protected | private staticfinal | abstract native synchronized 4.方法体 方法体是实现这个方法的代码段,它由“”和“”括起来的语句序列构成。,4.2.2类体,5方法的调用 成员方法又分为类方法(静态方法)和对象方法(实例方法)两类。 类

9、方法调用形式如下: 类名.类方法名(实参列表) 对象方法调用形式如下: 对象名.对象方法名(实参列表),4.2.3 实例化对象,通过声明和定义类,只是给出了创建对象的模板. 当使用一个类创建了一个对象时,我们也说我们给出了这个类的一个实例。 通常的格式为: Type objectName=new Type(parameterList); 创建一个对象包括对象的声明、为对象分配内存空间和赋初值三个步骤。 1、对象的声明格式为: 类的名字 对象名字 2、 为声明的对象分配内存. 使用new 运算符和类的构造方法为声明的对象分配内存 3、执行构造方法,进行初始化。,4.2.3 实例化对象,【例4-1

10、】下面的例子将建立雇员信息类EmpInfo,并实例化对象,然后打印出若干信息。 / EmpInfo.java public class EmpInfo String name; / 雇员的姓名 String designation; / 雇员的职务 String department; / 雇员的部门 void print() / 成员方法 System.out.println(name + “ is “ + designation + “ at “ + department); ,4.2.3 实例化对象,public static void main(String args) EmpInfo

11、 employee = new EmpInfo(); / 创建对象并实例化 employee.name = “ Robert Javaman “ ; / 给成员变量赋值 employee.designation = “ Manager “ ; /给成员变量赋值 employee.department = “ Coffee Shop “ ; /给成员变量赋值 employee.print(); / 调用方法print() 运行结果如下: Robert Javaman is Manager at Coffee Shop,4.2.4构造方法,每当由类构造对象时都要调用该类特定的构造方法,在Java中

12、,每个类都至少有一个构造方法。构造方法可以确保用户正确地构造类的对象,同时,构造方法也会对对象作初始化工作。 构造方法说明形式如下: 构造方法修饰符 方法名(形式参数列表) throws异常列表 方法体 构造方法修饰符与一般方法修饰符相同 一个类的构造方法可以有多个,它们都具有相同的方法名,即类名。编译器根据参数的类型来决定调用哪个构造方法。这就是构造方法的多态。,4.2.4构造方法,构造方法分为:缺省的构造方法、带参数的构造方法。 (1)缺省的构造方法 如果类的定义没有编写构造方法,Java语言会自动为用户提供。这个由Java自动提供的构造方法就是所谓的缺省构造方法。缺省的构造方法确保每个J

13、ava类都至少有一个构造方法,该方法应符合方法的定义。 (2)带参数的构造方法 带有参数的构造方法能够实现这样的功能:当构造一个新对象时,类构造方法可以按需要将一些指定的参数传递给对象的变量。,4.2.5 对象的清除,通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除。 垃圾收集器作为一个线程运行,当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行,否则垃圾收集器在系统空闲时异步地执行。 在对象作为垃圾被收集器释放前,Java运行时系统会自动调用对象的方法finialize() 。 protected void finalize() t

14、hrows Throwable /撤销对象 finalize()方法是类java.lang.Object中最基本的方法。,4.2.6 方法重载,方法重载(Method Overloading)就是一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同:即或者是参数的个数不同,或者是参数的类型不同。 从另外的含义上来讲,重载也可以看成是同一个方法具有不同的版本,每个版本之间在参数特征和返回值方面有差别。重载是Java实现多态性的一种方式。 当调用一个重载方法时,JVM自动根据当前对方法的调用形式在类的定义中匹配形式符合的成员方法,匹配成功后,执行参数类型、数量均相同的成员方法。方法重载在

15、Java的API类库中得到大量的使用。,第4章 面向对象程序设计基础,4.1 面向对象的基本概念 4.2 类的定义 4.3 类和对象的使用 4.4 包package 4.5 成员变量及方法的访问权限 4.6 final、this及其它,4.4 包package,4.4.1 package语句 4.4.2 import语句 4.4.3 编译和运行包,4.4 包package,由于Java编译器为每个类生成一个字节码文件,且文件名与类名相同,因此同名的类有可能发生冲突。为了解决这一问题,Java提供包来管理类名空间。包实际上提供了一种命名机制和可见性限制机制。 package语句作为Java源文件

16、的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。 Java系统必须支持至少一个无名包(缺省包),一般为当前目录。在开发小的或者临时的应用程序或者刚刚开始开发时,用无名包是非常方便的。,4.4.1 package语句,package语句的格式为: package pkg1pkg2pkg3; Java编译器把包对应于文件系统的目录。例如:名为myPackage的包中,所有类文件都将存储在目录myPackage下。同时,package语句中,用“.”来指明目录的层次,例如: package java.awt.image; package ; package myPackage;,4.4.2 import语句,为了

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号