025-026 面向对象编程

上传人:012****78 文档编号:132648752 上传时间:2020-05-18 格式:PPT 页数:49 大小:343.50KB
返回 下载 相关 举报
025-026 面向对象编程_第1页
第1页 / 共49页
025-026 面向对象编程_第2页
第2页 / 共49页
025-026 面向对象编程_第3页
第3页 / 共49页
025-026 面向对象编程_第4页
第4页 / 共49页
025-026 面向对象编程_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《025-026 面向对象编程》由会员分享,可在线阅读,更多相关《025-026 面向对象编程(49页珍藏版)》请在金锄头文库上搜索。

1、手机游戏JAVA语言基础 第4章面向对象编程 第4章面向对象编程 继承包访问控制修饰符抽象类接口 继承访问控制修饰符接口 继承接口 掌握Java面向对象程序设计 第4章面向对象编程 4 7继承 4 7 1继承的概念和使用 面向对象程序设计的特性之一就是允许编程者在已定义的类的基础上建立新的类 作为新类的基础的类可以是程序员自己实现的类 也可以使Java标准类库中的类 在已有类的基础上通过继承或扩展的机制来实现类的重用 能够极大的提高编程效率 第4章面向对象编程 4 7继承 4 7 1继承的概念和使用 基于现有的类定义新类的做法称为派生 derivation 新的类或派生类被称为派生它的类的子类

2、 subclass 原有的类叫基类 baseclass 父类或超类 superclass 父类也可以有自己的父类 子类也可以有子类 第4章面向对象编程 4 7继承 4 7 1继承的概念和使用 子类是作为另一个类的扩充或修正所定义的一个类 第4章面向对象编程 Java中不支持多重继承 通过在类的声明中加入extends子句来创建一个类的子类 格式为 classSubClassextendsSuperClass bodyofclass 4 7继承 4 7 1继承的概念和使用 第4章面向对象编程 4 7继承 4 7 1继承的概念和使用 继承是子类利用父类中定义的方法和变量 就像它们属于子类本身一样

3、子类包括超类的所有成员 但不能访问父类中被声明为private的成员 如果一个类没有显式的继承任何类 则默认继承Object类 第4章面向对象编程 4 7继承 4 7 2方法的覆盖 如果在子类中定义一个方法 其名称 返回类型及参数列表与父类中方法的名称 返回类型及参数完全一样 那么新方法被称做覆盖旧方法 其作用是 有时候 可能觉得父类中的方法不能满足需要 覆盖使得在子类中可以重新定义父类中已有的方法 从而体现出子类自己的行为 第4章面向对象编程 4 7继承 4 7 2方法的覆盖 classCar intcolor number intdoor number intspeed publicvoi

4、dpush break speed 0 publicvoidadd oil classTrash CarextendsCar doubleamount publicvoidfill trash publicvoidpush break speed speed 10 覆盖的示例 第4章面向对象编程 子类能创建一个与父类方法有不同功能的方法 但具有相同的名称返回类型参数表 4 7继承 4 7 2方法的覆盖 第4章面向对象编程 4 7继承 4 7 2方法的覆盖 方法覆盖时应遵循的原则 1 覆盖后的方法不能比被覆盖的方法有更严格的访问权限 2 覆盖后的方法不能比被覆盖的方法产生更多的异常 第4章面向对

5、象编程 4 7继承 4 7 3this和super关键字 关键字this的用法之一是用来指向当前对象或类实例的 publicclassMyDate privateintday month year publicvoidtomorrow this day this day 1 1 this关键字 第4章面向对象编程 4 7继承 4 7 3this和super关键字 1 this关键字 this关键字还有另一种含义 如果构造方法的第一个语句具有形式 this 那么这个构造方法将调用同一类中的由this后括号内参数指定的其它构造方法 第4章面向对象编程 4 7继承 4 7 3this和super关键

6、字 1 this关键字 例如有定义类如下 classA publicA System out println 被构造方法所调用 publicA inta this System out println a 可以看到上类中构造方法被重载 并且在有参构造方法中使用this调用了本类中另一个无参构造方法 第4章面向对象编程 4 7继承 4 7 3this和super关键字 1 this关键字 main 方法如下 classTest publicstaticvoidmain String args Aa newA 100 运行结果如下 被构造方法所调用100 第4章面向对象编程 4 7继承 4 7 3

7、this和super关键字 2 super关键字 super 方法名可以调用父类中的方法 super的另外一种是调用父类的构造方法 super关键字也有两个作用 第4章面向对象编程 4 7继承 4 7 3this和super关键字 2 super关键字 案例 利用super关键字调用父类 父类 classA publicA System out println 被构造方法所调用 子类 classBextendsA publicB super System out println B构造方法 第4章面向对象编程 4 7继承 4 7 3this和super关键字 2 super关键字 main 方

8、法 classTest publicstaticvoidmain String args Bb newB 第4章面向对象编程 4 7继承 4 7 3this和super关键字 2 super关键字 运行结果 被构造方法所调用B构造方法 这个构造方法是通过专门的super语法来调用的 使用super的调用必须是子类构造器中的第一条语句 第4章面向对象编程 4 7继承 4 7 4对象的构造 第4章面向对象编程 4 7继承 4 7 5多态性 编译时多态 在编译阶段 具体调用哪个被重载的方法 编译器会根据参数的不同来静态确定调用相应的方法 运行时多态由于子类继承了父类所有的属性 私有的除外 所以子类对

9、象可以作为父类对象使用 程序中凡是使用父类对象的地方 都可以用子类对象来代替 第4章面向对象编程 4 7继承 4 7 6final关键字 final是一个应用很广泛的关键字 它可以修饰类 类的成员变量和成员方法 但其中作用各不相同 1 final修饰变量 final修饰变量 则成为常量 语法格式如下 finaltypevariableName 修饰成员变量时 定义时同时给出初始值 而修饰局部变量时不做要求 final修饰的变量一旦初始化后 以后将不能再修改 第4章面向对象编程 4 7继承 4 7 6final关键字 1 final修饰变量 例如 classAA finalintONE 11 v

10、oidchange inti ONE i 定义了一个常量 错误 不能改变one的值 第4章面向对象编程 4 7继承 4 7 6final关键字 2 final修饰方法 final修饰方法 则该方法不能被子类重写 语法格式如下 finalreturnTypemethodName paramList 第4章面向对象编程 classA fianlvoidmeth System out println ina classBextendsA voidmeth System out println inb 定义了一个最终方法 错误 因为meth 方法是最终方法 4 7继承 4 7 6final关键字 2

11、final修饰方法 例如 第4章面向对象编程 4 7继承 4 7 6final关键字 3 final修饰类 final修饰类 则类不能被继承 语法格式如下 finalclassfinalClassName 第4章面向对象编程 finalclassAA finalintONE 11 voidchange inti System out println i i classBBextendsAA 省落BB类的内容 定义了一个最终类 错误 因为AA是不能被继承 4 7继承 4 7 6final关键字 3 final修饰类 例如 第4章面向对象编程 4 8包 4 8 1包的含义和使用 包 package

12、 是Java编程的重要概念 包有利于将各种不同功能的类分类 包避免了类名的冲突 第4章面向对象编程 4 8包 4 8 1包的含义和使用 Java中用package语句来将一个Java源文件中的类打成一个包 package语句作为Java源文件的第一条语句 指明该文件中定义的类所在的包 若缺省该语句 则指定为无名包 它的格式为 packagepkg1 pkg2 pkg3 Java编译器把包对应于文件系统的目录管理 package语句中 用 来指明目录的层次 第4章面向对象编程 4 8包 4 8 1包的含义和使用 库 也由一系列类文件构成 每个文件都有一个组件 使用package关键字将所有这些组

13、件 它们在各自独立的 java和 class文件里 都归纳到一起 在一个文件的开头使用下述代码 packagemypackage 第4章面向对象编程 4 8包 4 8 1包的含义和使用 package语句必须作为文件的第一个非注释语句出现 package语句的作用是指出这个编译单元属于名为mypackage的一个库的一部分 如果其他人想使用这个名字 指出完整的名字 第4章面向对象编程 4 8包 4 8 1包的含义和使用 使用打包语句时 创建的包名一定是独一无二 编译器强迫package名的第一部分是类创建者的因特网域名 将package名解析成自己机器上的一个目录注意根据Java包的约定 名字

14、内的所有字母都应小写 甚至那些中间单词亦要如此 第4章面向对象编程 4 8包 4 8 1包的含义和使用 例如 假定将文件名是MyClass java的文件打包 packagemypackage publicclassMyClass 第4章面向对象编程 4 8包 4 8 1包的含义和使用 用import关键字导入一个完整的库时 就会获得 包 例如 importjava util 上述import语句的作用是导入完整的实用工具 Utility 库 该库属于标准Java开发工具包的一部分 若想导入单独一个类 可在import语句里指定那个类的名字 例如 importjava util Vector

15、第4章面向对象编程 4 8包 4 8 1访问修饰符 类中的成员变量和成员方法都可以使用访问修饰符来控制其访问的权限 对类中成员访问属性的限定有四种类型 第4章面向对象编程 4 9抽象类和接口 4 9 1抽象类 有时在库开发中 要创建一个体现某些基本行为的类 并为该类声明方法 但不能在该类中实现该行为 取而代之 在子类中实现该方法 知道其行为的其他类可以在类中实现这些方法 这样的类通常被称做抽象类 abstractclass 通过用关键字abstract进行标记声明一个抽象类 第4章面向对象编程 4 9抽象类和接口 4 9 1抽象类 抽象类的语法格式如下 abstractclassabstrac

16、tClass 抽象方法的语法格式如下 abstractreturnTypeabstractMethod paramlist 定义Actor抽象类 publicabstractclassActor intlife 100 publicabstractvoidattact Actora publicvoiddefine intdefineValue 根据不同类型减少生命值的简单代码 第4章面向对象编程 4 9抽象类和接口 4 9 1抽象类 抽象类必须被继承 抽象方法必须被重写 抽象方法只需声明 无需实现 抽象类不能被实例化 抽象类不一定要包含抽象方法 若类中包含了抽象方法 则该类必须被定义为抽象类 不能有抽象构造方法或抽象静态方法 abstract类的子类为它们父类中的所有抽象方法提供实现 否则它们也是抽象类 publicclassHeroextendsActor publicvoidattact Actora 根据不同子类对象实现攻击方法 第4章面向对象编程 4 9抽象类和接口 4 9 2接口 接口是类似于类的一种结构 可以把接口看成是由常量和抽象方法组成的特殊类 接口特别像纯粹的抽象类

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

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

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