第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
第1章 Java语言概述.
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
第4章 类与对象 本章导读 0. 面向对象编程 1. 类声明和类体 2. 类体的构成 3. 构造方法与对象的创建 4. 对象的引用与实体
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
第11章 Java多媒体技术.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
Ch07 介面與多重繼承 物件導向程式設計(II).
JAVA程序设计 (03) JAVA Programming
第5章 进一步讨论对象和类.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
Object-Oriented Java Programming
Ch02 視窗Swing套件 物件導向系統實務.
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
2018/11/15 面向对象与多线程综合实验-GUI设计 教师:段鹏飞.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
第六章 类的扩展与继承.
Chapter 9 設計的精細製作: 行動計算 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
CH09 套件 物件導向程式設計(II).
Java软件设计基础 5. 继承与多态.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
职责链模式.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java语言程序设计 第八部分 Applet小程序.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
辅导课程九.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第一章 Java语言概述.
C/C++/Java 哪些值不是头等程序对象
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
简单工厂模式.
面向对象 程序设计语言基础 马骏
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第二章Java基本程序设计.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Reusable software component
第二章 基于CORBA的分布式平台 苗启广 计算机学院.
主编:钟元生 赵圣鲁.
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
第4讲 类和对象、异常处理 ggao.
Applet.
只要功夫深 铁杵磨成针 —— 写在前面的话.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
Java语言程序设计.
Summary
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
Presentation transcript:

第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题

学习目标 Java程序是类与接口的集合,利用包可以将常用的类或功能相近的类放在一个程序包中。编写程序时,仅仅依靠程序员自己设计类或接口还不够,必须充分了解系统类库,大量调用系统类库是软件开发的基本技术。本章介绍包(package)、接口(interface)的功能与用法,最后介绍系统类库的使用。

本章要点 包的声明和引用 接口的声明、继承和实现 Java系统类库的基本结构和概念

包 在Java中,开发人员通过类来实现各项功能,根据不同的需求设计出大量的各式各样的类,并将这些类杂乱无章的存放在各个文件中。当他们需要使用这些类的时候,往往很难分清哪些类是一组的或者相互继承的,这给程序的开发带来了很大的麻烦。

包 为了避免这种情况的发生,Java语言使用了一种新的机制来将这些类分门别类的集中到一起,这种机制就是“包”。 包的声明 包的引用 应用举例——创建并引用包求素数

包的声明 一个包由一组类和接口组成,包中还可以包括子包,相当于文件夹中可以包含若干文件和子文件夹一样,因此包提供了一种多层命名空间。事实上,Java系统就是利用文件夹来存放包的,一个包对应一个文件夹,文件夹下有若干个class文件和子文件夹,开发人员可以把类放入指定包中。

包的声明 要使用程序包,即将程序中出现的类放在指定的包中,应首先在程序的当前目录中创建相应的子目录(可以是多层目录结构),然后将相应的源文件存放在这个文件夹中,再编译这个程序,就可形成用户自己的包。

包的声明 包的声明格式为: package 包名1[包2[包3…..]]; 例如:Package person.student.information 包声明时,应注意以下几点:

包的声明 包的声明语句必须放在程序源文件的开始位置,包语句之前只能有注释语句,表示该文件中声明的全部类都属于这个包。 可以在不同的文件中使用相同的包声明语句,这时不同文件中定义的类都放在了同一个包中。

包的声明 包名通常都使用小写。 在Java中的任何一个源文件最多只能有一个包声明语句。 包名前可以带路径,形成多层次命名空间。

包的声明 包的名字有层次关系,各层间以点分隔,包层次必须与Java开发系统的文件结构相同。 【例6-1】 多层次包的建立(光盘:\源文件\第6章\例6-1.txt)。 建立了一个多层次包China.beijing.Tsinghua。说明:

包的声明 本例中所有类位于包China.beijing. Tsinghua中,包中每个类的完整名称是包名.类名,如China.beijing.qinghuadaxue.Test6_1。 同一个包中的类互相访问不需要指明包名,如果从外部访问一个包中的类,需要使用类的完整名称。

包的声明 包的存放位置必须与包名层次相对应的目录结构中一致。

包的声明 如果Test6_1.java位于f:\1000中,则编译产生的Test6_1.class必须位于f:\1000\China\beijing\Tsinghua中,所有这些目录都由开发人员自己建立,还要设置set classpath=.;f:\1000,此处的“.”代表当前目录。

包的声明 可以在编译时让javac产生于包名层次相同的目录结构,并把字节码文件放到此目录下,这样就不需要手动建立了,格式为:Javac –d .Test6_1.java。

包的引用 若要在程序里使用包中定义的类,应使用import语句引入包,告诉编译器类及包所在的位置,事实上,包名也是类的一部分。如果类在当前包中,则包名可以省略。

包的引用 包的引用格式是: import包名1[包2[包3…..]].(类名|*); 包名前可以指明层次关系,既可以精确到某一个类,也可以用通配符“*”表示当前包中的所有类。使用指明层次关系的方法可以提高程序的执行效率。

包的引用 包引用时,应注意以下几点。 一个程序中可以引入多个包, 但是一条import语句一次只能引入一个包,每个包也要用一条import语句引入。 JVM通常将包以一种压缩文件的形式(.jar)存储在特定的目录中。

包的引用 Java中的语言核心包java.lang包,包含常用类的定义,在程序运行时将自动引入,不需要使用import语句。 使用import语句引用某包中的所有类并不会自动引入其子包中的类, 应使用两条import语句分别引入。

包的引用 Event包虽然包含于awt包,但是仍需分别引入,只用第一条语句是不行的。

应用举例——创建并引用包求素数 本节应用举例将创建并引用包求素数(光盘:\源文件\第6章\应用举例sushu.txt),首先建立一个求素数的类“sushu”,然后再建立一个类“Test6_1”来引用它。

类“sushu”的运行结果

类“Test6_1”的运行结果

接 口 接口是方法定义和常量值的集合,只包含常量和方法的定义,而没有它们的实现。接口的定义解决Java语言中不能支持多重继承的缺陷。

接 口 接口的概念和意义 接口的声明和继承 接口的实现 接口回调 应用举例——定义并使用接口Animal

接口的概念和意义 接口是抽象类的变体。接口中的所有方法都是抽象的,即所有方法都只有方法名,而没有方法体。接口只可以定义static和final成员变量。 接口弥补了Java技术只有单继承这一不足之处。当类定义后只能扩展出单个类时,它能实现所需的多个接口。

接口的概念和意义 接口的实现与子类相似,当类实现某一接口时,它实现所有该接口的方法。然后,它可以在实现该接口的类的任何对象上调用该接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型,引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。

接口的声明和继承 接口是用关键字interface来声明的,声明的基本格式如下。 [修饰符] interface 接口名 { …...//常量和方法声明 }

接口的声明和继承 Java的编译系统会自动地把声明的变量当作一个常量来处理,即public static final类型,因此在接口中定义的变量必须被初始化,而且不能被修改,否则会出现编译时的错误。

接口的声明和继承 接口中的方法会被默认的修饰为public abstract,也可以使用一些访问控制符进行限制,如果有public,表示本接口可以被任何类实现,否则,只有同一个包中的类才可以实现这个接口。

接口的声明和继承 接口可以实现继承,一个接口可以继承父接口的所有成员。如在以下代码中,接口secondTransparency继承了上面代码中的接口Transparency中所有的属性和方法:

接口的声明和继承 public interface secondTransparency extends Transparency{ …… }

接口的声明和继承 通过在extends后面增加接口名,可以实现接口的多重继承,格式如下: interface 接口名 extends 接口名1,接口名2,接口名3…

接口的实现 在类声明时,可以通过关键字implements来表示该类调用或者说实现某个接口。关键字“implements”便是实现的意思,所谓“实现”就是重新定义方法体,使之可以实例化。当类调用一个接口后,该类就可以使用接口中定义的常量,

接口的实现 但必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中可用逗号分隔各个接口名。这时,类的定义格式为:class 类名 implements 接口名列表; 对于下述情况,接口是有用的。

接口的实现 声明方法,期望一个或更多的类来实现该方法。 揭示一个对象的编程接口,而不揭示类的实际程序体。 捕获无关类之间的相似性,而不强迫类关系。

接口的实现 描述“似函数”对象,它可以作为参数被传递到在其他对象上调用的方法中。它们是“函数指针”用法的一个安全的替代用法。 【例6-2】 接口的使用。定义接口“SayHello”,并在类“SayHelloImpl”中调用了该接口(光盘:\源文件\第6章\例6-2.txt)。

接口的实现 interface SayHello强制规定,实现它的所有的类必须有一个称做printMessage的方法,该方法带有一个void返回类型且没有输入参数。

接口回调 接口回调是多态的另一种体现,接口回调就是指当定义接口时,可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口中的方法。事实上,当接口变量调用被类实现的接口中的方法时,就会通知相应的对象调用接口的方法。

接口回调 【例6-3】 接口的回调(光盘:\源文件\第6章\例6-3.txt)。

应用举例——定义并使用接口Animal 本节的应用举例将定义并使用接口Animal(光盘:\源文件\第6章\应用举例TestInterface. txt)。

Java系统类库 Java提供了大量的系统类库供开发人员调用以简化编程过程,这些类库能帮助开发人员完成字符串、输入输出、声音、图形图像、数值运算和网络应用等方面的处理。

Java系统类库 Java类库包含在Java开发工具JDK中。Java类库包括接口和类,每个包中又有许多特定功能的接口和类,可以从包开始访问包中的接口、类、变量和方法。下面将简单的介绍一下各个包的功能。

Java系统类库 Java.lang包:是Java语言的核心类库,包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。 Java.io包:是Java语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其它Java程序做数据交换所使用的类。

Java系统类库 Java.applet包:是用来实现运行于Internet浏览器中的Java Applet的工具类库,它仅包含少量的几个接口和一个非常有用的类:Java.applet.Applet。

Java系统类库 Java.awt包:AWT(Abstract Window Toolkit)抽象窗口工具集,该包是Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,提供3个方面的支持:低级绘图操作;图形界面组件和布局管理;界面用户交互控制和事件响应。

Java系统类库 Java.net包:Java网络包,该包是Java语言用来实现网络功能的类库,主要包括:底层的网络通信;编写用户自己的Telnet、FTP、邮件服务等实现网上服务的类;用于访问Internet上资源和进行CGI网关调用的类。

Java系统类库 Java.math包:Java语言数学包,包括数学运算类和小数运算类,提供完善的数学运算方法。 Java.util包:Java实用程序包,包提供了Java语言中实用工具。 Java.security包:Java安全包,提供安全控制和管理,可对Java程序加密。

Java系统类库 Java.sql包:Java数据库包,是实现JDBC(Java database connection)的类库。利用它可使Java程序具有访问不同种类数据库的能力。

Java系统类库 Java.rmi包:Java远程方法调用包,实现远程方法调用,可在远程计算机上创建对象,在本地计算机上使用该对象。

Java系统类库 Java.text包:Java文本包,提供一种独立于自然语言的方式处理文本、日期、数字、消息的类和接口,实现日期、数字、消息的格式化和字符串搜索排序的功能。 Java.beans包:提供了一系列与Javabean开发有关的类。

上 机 练 习 本节通过定义与调用接口,包的创建和引用两个上机练习,帮助读者巩固本章所学的知识点。 定义和调用接口 包的创建和引用

定义和调用接口 本次上机练习将通过接口的定义和调用,演示接口的使用(光盘:\源文件\第6章\上机练习1.txt)。

类“InterFace”运行结果

包的创建和引用 通过本次练习熟练掌握包的创建和包的引用。 首先,创建一个包a1,然后,创建一个PackageExample类,最后该类引用了包a1(光盘:\源文件\第6章\上机练习2.txt)。

习 题 (1)编写一个程序实现抽象类。 (2)编写一个程序,实现包的建立和包的引入。