java期末复习课件第04讲面向对象程序设计.ppt
《java期末复习课件第04讲面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《java期末复习课件第04讲面向对象程序设计.ppt(42页珍藏版)》请在三一文库上搜索。
1、JAVA 语言,第4讲 面向对象程序设计(2) 继承,2019年2月21日,上一讲回顾,1. 面向对象的基本特征(封装、继承和多态); 2.类的定义、对象的创建和引用方法; 3.定义类时的各种细节,构造函数的定义和使用; 4.各种修饰符的使用方法。,2019年2月21日,学习要点,理解继承的概念,超类和子类的关系,掌握它们在继承中的应用; 掌握类中有关private成员的访问控制方法; 理解方法重载和方法重写的区别和使用方法;,2019年2月21日,4.1 包,包是由.class文件组成的一个集合,2019年2月21日,4.1.1 定义包,构建包语句的语法是: package pkg1.pkg
2、2.pkg3; 例如:package com.javaworld; package语句作为Java源文件的第一条语句。如果没有package语句,则为缺省无名包。 则该语句的前面只能有注释或空行。而且一个文件中最多有一条package语句。 包名有层次关系,全部用小写字母,各层之间用点分割.,2019年2月21日,包是类的容器,用于分割类名空间。 如果不指定,默认就存在当前文件夹里面。 当使用包说明时,程序不需要再引入同一个包或者该包的任何元素。 如果包声明是: package com.sun.java; 则此文件必须存放在Windows的comsunjava目录下。,2019年2月21日,包
3、名必须唯一 主要是为了交流,和便于大家的协同合作。 一个使用较多的办法是反转域名,如 com.sun.util; 包名的解释 Java解释器的执行顺序是:首先找到环境变量classpath,利用classpath包含的一个或者多个目录,把他们作为一种特殊的“根”使用,从这里开始搜索,搜索时会把“.”替换成“”(Windows)。,2019年2月21日,4.1.2 导入包,import的语法是: import pkg1.pkg2.pkg3.(类名| * ); 例如:import java.awt.*; 引入整个包时,可以方便的访问包中的每个类。 但是引入所有的包会占用过多的内存。因此,我们建议只
4、引入需要的类。 程序中不一定有引入语句。当需要引用某个类与当前类存储在一个物理目录下的时候,就可以直接使用,而不需要引入。,2019年2月21日,4.1.3 类路径(CLASSPATH),编译时:javac d CLASSPATH路径 Myclass.java 例如:javac d d:Myjava myclass.java 则直接在d:Myjava下创建在myclass.java中指明的包目录,并把myclass.class拷到该目录下。 运行:java 包名.类名 如 java pk1.pk2.类名A 示例 CircleDemo2.java,2019年2月21日,jdk中常用的包 java
5、.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。 java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 java.applet-包含applet运行所需的一些类。 -包含执行与网络相关的操作的类。 java.io-包含能提供多种输入/输出功能的类。 java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。,2019年2月21日,4.1.4 访问控制,2019年2月21日,4.2 继承,
6、面向对象的编程允许从现有类派生出新类,这称为继承。 使用继承,程序员可以创建一个定义了多个相关项目共有特性的通用类,然后,其它较为具体的类可以继承该类,同时再添加自己的独有特性。 在Java中定义的每一种类都是从现有类派生来的,或者是显式或者是隐式(如从Object类派生),2019年2月21日,13,4.2.1 超类和子类,在Java术语中,如果类C2是从另一个类C1派生出来的,那么C2称为子类,C1称为超类。,C1,C2,C3,派生,派生,超类,子类,声明一个继承超类的子类的格式: class subclass-name extends superclass-name /body of c
7、alss 示例:SimpleInheritance.java,2019年2月21日,/ SimpleInheritance.java class A int i, j; void showij() System.out.println(“i and j: “ + i + “ “ + j); /创建一个继承超类A的子类B class B extends A int k; void showk() System.out.println(“k: “ + k); void sum() System.out.println(“i+j+k: “ + (i+j+k); ,关键字extends,2019年2月
8、21日,class SimpleInheritance public static void main(String args) A superOb = new A(); B subOb = new B(); / The superclass may be used by itself. superOb.i = 10; superOb.j = 20; System.out.println(“Contents of superOb: “); superOb.showij(); System.out.println(); /* The subclass has access to all publ
9、ic members of its superclass. */ subOb.i = 7; subOb.j = 8; subOb.k = 9; System.out.println(“Contents of subOb: “); subOb.showij(); subOb.showk(); System.out.println(); System.out.println(“Sum of i, j and k in subOb:“); subOb.sum(); ,2019年2月21日,超类指父类或者基类,子类指孩子类、扩展类或者派生类。 子类从它的超类中继承所有的实例变量和方法,并且可以创建新的
10、数据和方法。 因此,子类总是比其超类具有更多功能。,2019年2月21日,4.2.2 成员访问和继承,类的实例变量经常被声明为private,以防止未经认可的使用或滥用。 尽管子类包括超类的所有成员,但它不能访问超类中被声明为private的成员。 示例1,2019年2月21日,/创建一个超类A class A int i; /public be default private int j; /private to A void setij(int x,int y); i=x; j=y; class B extends A int total; void sum() total=i+j; /出
11、现错误,j不能在子类B中的方法访问 ,2019年2月21日,继承的优点:一旦创建了超类,可以用它创建任意数量更具体的子类。 示例 InfoPerson.java。,2019年2月21日,4.3 super关键字,示例InfoPerson.java,从Person类派生的类并没有体现出它们的实际上是多么有效和强大。 Country的构造函数明确的初始化了Person类的name、sex成员。 这些重复的代码在它的超类中已经存在,这样做效率很低,而且,这意味着子类必须被同意具有访问这些成员的权力。,2019年2月21日,既然封装是面向对象的基本属性,Java提供了在子类中用关键字super引用它直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 期末 复习 课件 04 面向 对象 程序设计
链接地址:https://www.31doc.com/p-2145497.html