文档详情

Java程序设计实例教程 毕广吉 第4章 面向对象的程序设计新.ppt

发布:2015-12-14约4.41千字共19页下载文档
文本预览下载声明
* 第四章 面向对象的程序设计 本章介绍面向对象程序设计的核心内容,是学习整个 课程的难点所在。学习本章的要求是: 了解类的封装的概念。 掌握类的继承和接口的概念及其具体用法。 掌握类的多态性(方法的重载、方法的覆盖)的含义和实 际意义。 掌握静态成员变量和静态成员方法的意义以及引用或调用 的方法。 了解包的概念。 本章学习目标 4.1 类的封装 Java是面向对象的程序设计语言,在Java中一切都是类和作为类的实体的对象。在面向对象的程序设计中,封装主要是指将数据、对数据的操作以及与外界的交互封装在类中。所以创建一个类时,通常包括以下的内容: (1)定义成员变量,包括实例成员和类成员。 (2)定义成员方法,包括实例方法和类方法。 (3)规定类是否可以被继承、变量是否被隐藏、方法是否可以被覆盖等特性。 继承是面向对象程序设计的重要特性。当定义了一个称为父类的类以后,另一个或几个子类可以继承父类的所有特性,包括成员变量、成员方法等。通过继承机制,子类能复用父类的代码,同时又允许子类添加自己特有的变量和方法,这样减少了代码的重复,提高了代码的质量和可靠性。 4.2 类的继承 4.2.1 创建子类习目标 继承使用关键字extends来实现,新定义一个类时可以指定该类继承那一个父类,此时定义类的语法是: [类修饰符] class 类名 [extends 父类名] 以下给出一个说明类的继承关系的例子。 实例 类的继承 4.2 类的继承 4.2.2 this对象和super对象 1.this对象 在Java中,this用来代表当前正在操作的对象。 例如,Java规定,当局部变量与成员变量同名时局部变量会屏蔽成员变量,这时如果要引用成员变量,就必须使用this来引用。请看下面的程序: 实例 this引用的例子 2.super对象 在Java中,super用来代表父类。 Java规定,如果子类中定义的成员变量与父类中定义的成员变量同名,则父类中的同名成员变量被屏蔽;如果子类中定义的成员方法与父类中定义的成员方法同名,并且参数的个数和类型以及返回值的类型也相同,则父类中的同名成员方法被屏蔽。这时如果要引用父类中的成员变量或成员方法,就必须使用super来引用。请看下面的程序: 4.2 类的继承 实例 super引用的例子 4.2.4 final关键字和abstract关键字 1.final关键字 final关键字用于声明最终类和最终方法。 最终类是不能被继承的类,最终类不能有子类。如果不希望某个类被继承,就可以用final关键字把这个类声明为最终类。声明最终类的格式是: final class className 有时只想保护类中的某个方法不允许被子类覆盖,此时可以用final关键字把这个方法声明为最终方法,声明最终方法的格式是: 4.2 类的继承 final void methodName ( ) 4.2 类的继承 2.abstract关键字 abstract关键字用于声明抽象方法和抽象类。 声明抽象方法的格式是: abstract void methodName ( ) 一旦一个方法声明为抽象方法,这个方法就必须被子类的方法覆盖,通常用于确保一个方法要求必须被子类方法覆盖的情况。但是构造方法不能声明为抽象方法,而且abstract关键字不能与static关键字同时使用。 任何包括抽象方法的类必须声明为抽象类。抽象类不能被实 例化,但是可以被继承,继承抽象类的子类可以被实例化。声明抽象类的格式是: abstract class className 抽象类的子类必须实现父类中的所有抽象方法,除非自己也声明为抽象类。声明抽象类的意义是描述其中抽象方法的结构,而不实现这些方法,它作为一个父类被所有的子类所共享,其中的方法由各个子类分头去实现。 一个类不能同时既是最终类有时抽象类,即final和abstract不能一起使用。 4.2 类的继承 4.3 类的多态性 4.3.1 多态的概念 简单地说,多态是指一个同名的方法可以有不同的版本,调用这个方法时只是调用了该方法不同版本中的一个。多态性使向系统添加新的功能变得容易,使得调用者的调用格式趋于一致,是降低软件复杂性提高软件易用性的有效技术。 实现多态性有两种途径,分别是方法的重载和方法的覆盖。 4.3.2 方法的重载 方法的重载是指在一个类中有若干同名的方法,区别这些方法的依据
显示全部
相似文档