Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性

上传人:E**** 文档编号:89156254 上传时间:2019-05-19 格式:PPT 页数:17 大小:203.51KB
返回 下载 相关 举报
Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性_第1页
第1页 / 共17页
Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性_第2页
第2页 / 共17页
Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性_第3页
第3页 / 共17页
Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性_第4页
第4页 / 共17页
Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性》由会员分享,可在线阅读,更多相关《Java程序设计与应用开发 教学课件 ppt 作者 孙燮华 第4章 Java面向对象特性(17页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计与应用开发,第4章 Java面向对象特性,4.1 概述,1为什么使用面向对象技术 OOP技术使得程序结构简单,相互协作容易,更重要的是程序的重用性得到大大地提高。 2什么是OOP技术 OOP(Object-Oriented Programming)技术把问题看成是相互作用事物的集合。用属性来描述事物,将对事物的操作定义为方法。在OOP中,把事物称为对象,称属性为数据。 3Java与C+ 之间OOP能力的比较,4.2.1 类的定义,Java中的类由两部分组成,它们是成员变量和成员方法。 定义类,又称为声明类。在Java中类定义的一般格式如下, class是关键字,表明其后定义的是

2、一个类。class前的修饰符可以有多个,用来限定所定义类的使用方式。 类名是用户为该类所起的名字。它应该是一个合法的标识符,并尽量遵从命名约定。 extends是关键字。如果所定义的类是从某一父类派生而来,则父类的名字应写在extends之后。,4.2.2对象的创建、初始化和使用,1. 对象的定义 2. 对象的初始化 上面定义对象和实例化对象的两个语句,还可用下面的一句来完成: 3. 对象的使用,4.2.3 构造方法,1构造方法的作用与定义 构造方法(constructor)是特殊的成员方法,有着特殊的功能。它的名字与类名完全相同,没有返回值。在创建对象实例时由new运算符自动调用。同时为了方

3、便地创建实例,一个类可以有多个具有不同参数列表的构造方法,即构造方法可以重载。 2默认的构造方法 每个类都至少有一个构造方法。如果程序员没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法。默认构造方法的参数列表及方法体均为空。 3拷贝构造方法 另外,还有一个简单的构造方法,它的参数只是一个指向该构造方法所属类的对象的引用。这种形式的构造方法通常用于复制一个已经存在的对象,因此称这种构造方法为拷贝构造方法。,4.2.4 成员变量和成员方法,1. 定义成员变量 2. 定义成员方法,4.2.5 成员方法的递归,递归算法(recursion),有时也称为递归方法是指一个方法直接或间接地调用自

4、己的算法。递归方法会重复调用自身方法,但一次一次地将问题简单化,直到最简单并已存在解答时为止。递归类型有二种。其一是方法调用其自身,就是直接递归,其二是一个方法依次调用另一个方法,被称为间接递归。下面,以递归方法解Hanoi塔问题为例来说明递归方法的应用。,4.2.6方法的重载,1. 成员方法重载 下面以一个输出文本表示的简单方法为例来说明方法的重载。该方法名为println ()。要重载方法名,可以如下声明:,2构造方法重载,4.3类的继承和多态,在面向对象技术中,继承是类的最为显著的特征之一。当一个类自动拥有另一个类的全部属性时,就称这两个类之间具有继承关系。称被继承的类为父类(或超类),

5、继承了父类的类为子类。继承,有时也称为派生,是一种由已有的类创建新类的机制。子类不仅可以从父类中继承父类的域和方法,而且可以对这些域和方法重新定义和扩充新的内容。,4.3.1 继承的概念,一个父类可以同时拥有多个子类,这时该父类实际上是所有子类的公共域和方法的集合,而每个子类则是对公共域和方法在功能、内涵方面的扩展和延伸。 总之,父类与子类的关系具有 共享性 子类可以共享父类的公共域和方法。 差异性 子类和父类之间一定存在某些差异性,否则就是同一个类。 层次性 由于Java规定单重继承性,这使得每个类都处于继承关系的某一个层次。 下图4-4以电话类为例,给出了电话类及其子类之间继承关系的层次结

6、构。,4.3.2 继承的实现,在Java中,继承是通过关键字extends来实现的。其一般格式如下:,4.3.3单重继承,如果一个类有父类,则其父类只能有一个。Java只允许子类从一个类即其父类中继承。称这种继承为单重继承。Java规定单重继承的限制,是因为它要让代码的可靠性更高。另一方面,为了保留“多重继承”的功能,Java提出了接口的概念。 虽然一个子类可以从父类继承所有的方法和成员变量,但它不能继承构造方法。有两种方法可让一个类得到构造方法。一种方法是自己编写一个构造方法,另一种方法是,因为用户没有编写构造方法,所以系统为类提供唯一一个默认的构造方法。,4.3.4多态性,多态(Polym

7、orphism)是指类中同名的不同方法共存的情况。这些方法具有相同的名称是因为它们的最终功能和目的是相同的,只是由于完成同一功能的方法时遇到不同情况需要定义包含不同内容的方法。多态是面向对象程序设计中的一个特性,其目的是提高程序的抽象度、封闭性和简洁性。 Java提供两种多态机制:重载和覆盖。我们已经在4.2.6节学习了方法的重载(overloading)。本节,我们要学习另一种多态机制,即方法和域的覆盖(overriding)。,4.3.5 方法和域的覆盖,由于面向对象系统中的继承,子类可以继承父类中的方法。但是,子类的某些特征可能与从父类继承而来的特征有所不同。为了体现子类的这种个性,Ja

8、va允许子类对父类的同名方法重新进行定义,即子类可以定义与父类方法同名但其内容不同的方法。这种多态就称为覆盖(overriding), 或称为重写, 还有称为隐藏。由于覆盖的同名方法同时存在于子类和父类之中,所以在方法引用时需要指明引用的是父类的方法还是子类的方法。值得注意的是,在覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。例如,如果父类方法method()的访问权限是public,子类方法method()的权限就不能是private。否则,会出现编译错误。在子类中,若要使用父类中被隐藏的方法,可以使用super关键字。super表示的是当前对象的直接父类对象,它是当前对象的直接

9、父类对象的引用。例如,设类A派生出子类B,类B派生出自己的子类C,类B是类C的直接父类,而类A不是类C的直接父类。super仅代表当前类的直接父类。,4.4 包与接口,在实际开发中,通常需要设计许多类共同工作。这些类的类名不能相同。但当声明的类很多时,类名的冲突将不可避免。这时,就需要包的机制来处理类名。为了更好地组织类,Java提供了包(package)的概念来管理类名空间,就象文件夹将各种文件组织在一起。,4.4.1 Java的包,1包的概念 包是类的容器,用于分隔名字空间, 所谓名字空间(name space)就是类名的集合。到目前为止,所有的示例都属于一个默认的无名包。所谓包就是Jav

10、a语言提供的一种区别名字空间的文件夹。包中还可以嵌入包。程序员可以使用package指明源文件中的类属于哪个具体的包。包语句的格式为:,2. import语句 在Java中,若想利用包的特性,可使用引入(import)语句告诉编译器要使用的类所在的位置。 引入语句的格式下:,4.4.2接口,1. 什么是接口 Java中的接口(interface)使抽象类的概念更深入一层。接口中声明了方法,但不定义方法体,因此接口只是定义了一组对外的公共接口。与类相比,接口只规定了一个类的基本形式,不涉及任何实现细节。实现一个接口的类将具有接口规定的行为。 2. 接口的定义 接口定义包括接口声明和接口体两部分。格式如下: 3 接口的实现和使用 类的声明中用implements子句来表示一个类实现了某个接口。在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分隔。在类中实现接口所定义的方法时,方法的声明必须与接口中所定义的完全一致。,

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

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

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