Java语言基础教程 教学课件 ppt 作者 沈昕 1_ 05

上传人:E**** 文档编号:89370615 上传时间:2019-05-24 格式:PPT 页数:45 大小:135KB
返回 下载 相关 举报
Java语言基础教程 教学课件 ppt 作者  沈昕  1_ 05_第1页
第1页 / 共45页
Java语言基础教程 教学课件 ppt 作者  沈昕  1_ 05_第2页
第2页 / 共45页
Java语言基础教程 教学课件 ppt 作者  沈昕  1_ 05_第3页
第3页 / 共45页
Java语言基础教程 教学课件 ppt 作者  沈昕  1_ 05_第4页
第4页 / 共45页
Java语言基础教程 教学课件 ppt 作者  沈昕  1_ 05_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《Java语言基础教程 教学课件 ppt 作者 沈昕 1_ 05》由会员分享,可在线阅读,更多相关《Java语言基础教程 教学课件 ppt 作者 沈昕 1_ 05(45页珍藏版)》请在金锄头文库上搜索。

1、第5章 面向对象的程序设计,5.1,自 定 义 类,5.4,接 口,5.2,包和修饰符,5.3,类的继承和多态,5.1 自 定 义 类,5.1.1 自定义类,在Java语言中,声明类的一般格式为: 修饰符 class 类名 extends 父类名 implements 接口名 声明类的变量 声明构造方法 声明类的方法 ,1声明类,(1)修饰符 关键字class前的修饰符用来限定所声明的类的特性。现阶段,类的修饰符一般为public,它表示该类可以被任何对象或其他类来访问、调用。关于修饰符将在后面具体介绍。,(2)类的父类 如果一个类是另一个类的子类,需要继承父类的某些功能时,就要用extend

2、s关键字来指明类的父类。,(3)实现接口 在Java语言中,还有一个在语法上类似于类的概念,叫做接口,为了能够在类中使用接口,就需要使用关键字implements。,构造方法(Constructor Method)也称为构造函数,是一种特殊的方法。在创建对象时,使用关键字new调用这个对象所属类的构造方法来完成对象实例变量的初始化。构造方法的格式为: public 类名( 参数列表 ) 语句体 ,2构造方法,一般来说,构造方法具有以下几个特点。 (1)构造方法的方法名与其所在类的名称相同。 (2)虽然构造方法没有返回值,但是也不能有void关键字。 (3)构造方法的修饰符总是public。 (

3、4)构造方法的主要作用是完成对类对象实例变量的初始化。,(1)实例变量(Instance Variable) 实例变量用来存储某个类对象的状态值。它必须在类内、任何方法外被声明,一般位于整个类语句体的最前端。其修饰符可以是public或者private,但是不能使用static。实例变量的使用范围是整个类,也就是说可以在类中的任意方法内被使用。实例变量是依据其对象而存在的,运行程序在创建对象的同时,创建了其实例变量,当程序运行完成时,对象消失,其实例变量也同时消失。,3类的变量,(2)静态变量(Static Variable) 用修饰符static修饰的变量称为类静态变量,也叫做静态变量或者类

4、变量。静态变量是类的变量,不属于任何一个类的具体对象实例。它不保存在某个对象实例的内存空间中,而是保存在类的内存空间的公共存储单元中。也就是说,不论一个类具有多少个对象,静态变量只有一个,任何一个类的对象访问它,取得的都是相同的数值。,同样地,任何一个类的对象去修改它,也都是在对同一个内存单元进行操作。静态变量可以通过类名直接访问,也可以通过对象来调用,其格式如下。采用以下两种方法取得的结果是相同的。 类名.静态变量 对象名.静态变量,(3)最终变量(Final Variable) 在编写程序时,可以给某些经常要使用的具有特殊含义或者内容复杂的常量,取一个类似于变量名的标识符,这样就可以通过使

5、用这个变量名称来引用其对应的常量,而不是每次直接输入常量数值。这种做法的主要目的是使程序更加清楚,方便他人阅读、理解。,使用修饰符final修饰的变量是最终变量,其保存的数据在程序的整个执行过程中都不会改变。通常,在final前面再加上修饰符static,那么这个变量的实际含义就是常量,其格式为: static final 类型 常量名 = 初始值;,(4)易失变量(Volatile Variable) 如果一个变量被volatile修饰符所修饰,说明这个变量可能同时被几个线程所控制和修改,即这个变量不仅仅被当前程序所掌握,在运行过程中可能存在其他未知的程序操作来影响和改变该变量的值。在使用过

6、程中,应该特别留意这些影响因素。,(5)瞬态变量(Transient Variable) 把实例变量(不能修饰类变量)标识为transient,表明它是一个瞬态变量。在串行化对象时将忽略它。串行化是指把对象的实例变量的值写入特殊类型的IO流保存到文件,以便需要时使用。串行化是Java中很实用的功能之一。,(1)实例方法(Instance Method) 实例方法属于每个对象,只能通过类的对象调用。实例方法用来定义某个类的行为,也就是说类的对象所能进行的操作。与实例变量一样,实例方法的修饰符可以是public或者private,但是不能是static。如果希望实例方法可以在类之外被访问,则使用p

7、ublic;如果希望实例方法只在类内被访问,则使用private。,4类的方法,(2)静态方法(Static Method) 如果一个方法总是以相同的方式运行,即它的运行与类的任何实例没有关系,其行为与对象的状态(实例变量的值)无关,就应该用static修饰该方法,使其成为静态方法。与静态变量类似,静态方法的本质是属于整个类的,而不属于某个实例对象。,因为静态方法属于类本身,所以只要声明了类,它的静态方法就存在,就可以直接使用类来调用。需要调用某个静态方法时,可以使用其所属的类的名称直接调用,也可以用类的某个具体的对象名调用,其格式为: 类名.静态方法 对象名.静态方法,(3)最终方法(Fin

8、al Method) 关键字final可用来修饰类中的方法,称为最终方法。将一个方法标识为final的主要目的是防止子类重新声明继承自父类的方法。也就是说,防止子类中把继承自父类的方法重写为与父类完全相同的方法头但不同的方法体。实际上,Java类库中的很多方法都设计为最终的,这一限制为Java提供了安全保证,但防止子类重写方法会失去面向对象的很多优点。,(4)抽象方法(Abstract Method) 用关键字abstract修饰的方法,称为抽象方法。抽象方法只有方法头,没有方法体,而且以一个分号结束。抽象方法的声明通常出现的抽象类和接口中,这些内容将在本章第4节中详细讲述。显然,方法修饰符a

9、bstract和final不可能同时使用。,5访问方法,5.1.2 关键字this,关键字this本身的作用是当需要在类的实例方法中指向调用该实例的对象时,可以使用关键字this。在大多数情况下,关键字this不是必须使用的,可以被省略。 但是,在某些特定的情况下,关键字this是必不可少的,下面介绍两种最常见的情况。,1局部变量与实例变量同名,2在构造方法中调用其他构造方法,5.2 包和修饰符,5.2.1 包,Java中的包(Package)是用来把一些相关的类和接口放在一起的组织结构,它是一个相对独立的软件单元,可以简单的理解为放置这些类和接口的文件夹。包便于组织和管理程序设计中所开发的大

10、量的类和接口。这些包的集合称为类库。包不具有任何特别的功能,只是用来存放一个或者多个类和接口的空间。,1什么是包,2声明和应用包,(1)声明包 Java语言本身固有的类都是保存在各种包中的,例如,前面介绍过的java.awt和java.applet包。在没有特别指定的情况下,Java源程序属于默认包。默认包中所有的类都可以相互引用不是private修饰的变量或者方法。,但是由于默认包是没有名字的,所以它不能被其他包中的类使用import语句导入,也就是说不能为其他的类所使用。为了解决这个问题,需要声明具有名字的包。声明包的格式为: package包名.下一级包名.;,(2)导入包中的类 当需要

11、应用某个包中的类时,需要先导入该包,导入语句的格式为: import包名.类名;,3系统包,(1)java.lang包 (2)java.io包 (3)java.until包 (4)java.applet包 (5)java.awt包,(6)包 (7)java.awt.event包 (8)java.sql包 (9)java.awt.datatransfer包 (10)java.util.zip包,5.2.2 修饰符,public修饰符又称为公共访问控制符。类的修饰符一般为public,这表示该类为公共类,可以被所有的其他类访问和使用。当然,这并不表明类中的变量和方法也都是公共的。不过只有在类为pu

12、blic的条件下,才可以声明其中的变量和方法为public。,1public修饰符,用public修饰的变量称为公共变量,它可以被其他所有的类调用。public修饰符会造成安全性和数据封装性下降,所以一般应减少public变量的使用,而改用访问方法来读取和写入变量数据。用public修饰的方法称为公共方法,它可以被其他所有的类调用。,访问控制符public的使用形式为: public class 类名 public 变量名; public 方法名称( 参数列表 ) ,private修饰符又称为私有访问控制符。使用private修饰的变量和方法,只可以被类本身访问和调用。同一个类的不同对象可以互

13、相访问对方的private实例变量或者调用对方的private实例方法,这是因为访问控制符是在类级别上,而不是对象级别上。,2private修饰符,此外,如果限定构造方法为private,则其他类不能生成该类的一个对象实例。 访问控制符private的使用形式为: private 变量名; private 方法名称( 参数列表 ) ,protected修饰符又称为保护访问控制符。使用protected修饰的变量和方法,可以被同一个包中的其他类、类本身以及类的子类访问和调用。子类既可以是在同一个包中的类,也可以是在不同包中的类。 访问控制符protected的使用形式为: protected 变

14、量名; protected 方法名称( 参数列表 ) ,3protected修饰符,friendly修饰符又称为缺省访问控制符。friendly修饰符是Java语言默认的修饰符。当一个变量或者方法没有任何修饰符修饰时,系统默认其修饰符为friendly。使用friendly修饰的变量和方法,可以被同一包中的其他类和类本身访问和调用。如果类没有修饰符,则表示该类只可以被同一包中的其他类访问和使用。,4friendly修饰符,5.3 类的继承和多态,5.3.1 类的继承,类的继承(Inheritance)是面向对象程序设计中的一个重要特色。类继承也称为类派生,是指一个类可以继承其他类的所有内容,包

15、括变量和方法。,1继承的概念,被继承的类称为父类或者超类(Superclass),父类包括所有直接或间接被继承的类。继承后产生的类称为子类或者派生类(Subclass),子类继承父类的状态和行为,同时也可以修改父类的状态或者重载父类的行为,并添加新的状态和行为。,在Java语言中,所有的类都是由Object类派生出来的,比如前面介绍的Math类和String类,以及用户自己新建的类。 通过在类的声明中加入extends关键字来创建一个类的子类,其格式为: 修饰符 class 子类类名 extends 父类类名 语句体 ,2继承的实现,类继承是可以传递的,也就是说子类具有其父类和父类的父类、一直

16、到Object类的所有类的内容。,3继承的传递性,5.3.2 关键字super,在子类的构造方法中,使用关键字super可以调用其父类中的构造方法,语句的格式为: super( 参数列表 );,1访问父类构造方法,2访问父类的变量和方法,5.3.3 类的多态,所谓多态,是指在一个程序中同名的不同方法共存的情况。面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用方法重载在同一个类中声明多个同名的不同方法。多态可以提高类的抽象度和封闭性,统一多个相关类对外的接口。所谓覆盖,是在声明子类的方法时,使用与其父类中相同的名称和参数。在执行程序时,将执行子类的方法,而覆盖掉父类的方法。,5.4 接 口,5.4.1 对象数组,对象数组的声明和创建与普通类型的数组完全一样,其格式也有以下两种: 类名称 数组名 ; 类名称 数组名; 创建对象数组的格式为: 数组名 = new 类名称数组元素的个数;,5.

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

当前位置:首页 > 高等教育 > 大学课件

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