




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 接口、内部类和Java API 基础4.1 接口4.2 内部类和内部接口4.3 java.lang包中的基础类库4.4 java.util包中的工具类库1.3.3 包2022/7/2714.1 接口4.1.1 接口与实现接口的类4.1.2 用接口实现多继承 接口提供方法声明与方法实现相分离的机制,使多个类之间表现出共同的行为能力。接口机制使Java具有实现多重继承的能力。2022/7/2724.1.1 接口与实现接口的类1. 声明接口public interface 接口 extends 父接口 public static final 数据类型 成员变量=常量值; public abs
2、tract 返回值类型 成员方法(参数列表); 在Java中,接口是一种引用数据类型,是一组常量和抽象方法的集合。例如:public interface Area /可计算面积接口 public abstract double area(); /计算面积2022/7/2732. 声明实现接口的类格式:修饰符 class 类 extends 父类implements 接口列表例如: public class Rectangle implements Area4.1.1 接口与实现接口的类(续)【例4.1】 可计算面积接口与实现该接口的矩形类。2022/7/2743. 接口是一种引用数据类型Are
3、a g = new Rectangle(10,20); /接口变量g引用实现接口的类的对象System.out.println(g.toString(); /执行Rectangle的方法g = new Ellipse(10,20); /g引用椭圆对象System.out.println(g.toString(); /执行Ellipse的方法4.1.1 接口与实现接口的类(续)【例4.2】可计算体积接口与实现该接口的长方体类。2022/7/275【例4.3】 球类实现多个接口。4.1.1 接口与实现接口的类(续)2022/7/276接口及接口中成员的访问权限都是public。接口中的成员方法都是
4、公有的、抽象的实例成员方法。 public abstract接口中的所有抽象方法必须全部被实现接口的类覆盖。接口中的成员变量都是常量。public static final接口不能被实例化。接口是引用数据类型,可以声明接口的变量。 Area g = new Rectangle(10,20); 4. 接口的特点4.1.1 接口与实现接口的类(续)2022/7/2774.1.2 用接口实现多继承一个类可以继承一个父类并实现多个接口public interface AreaVolumn extends Area,Volumepublic class Globe implements AreaVolu
5、me2022/7/278相同点:两者都包含抽象方法。两者都不能被实例化。两者都是引用数据类型。 不同点:抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。 2. 接口与抽象类的比较4.1.2 用接口实现多
6、继承(续)2022/7/2794.2 内部类和内部接口 类与类之间除了继承关系,还存在嵌套关系,即一个类可以声明包含另一个类,被包含的类称为内部类(内嵌类型),包含内部类的类称为外部类(外层类型)。内嵌类型既有类型的特性,也有类中成员的特性。public class Line /直线类,外层类型 class Point /点类,内嵌类型1作为类型的特性内嵌类型不能与外层类型同名。内部类中可以声明成员变量和成员方法。内部类可以继承父类或实现接口。内部类可以声明为抽象类或内部接口。2022/7/2710使用点运算符“.”引用内嵌类型:外层类型.内嵌类型 Line.Point彼此信任,能访问对方的所
7、有成员。具有类中成员的4种访问控制权限。内部接口总是静态的。2作为成员的特性4.2 内部类和内部接口(续)【例4.4】 直线类声明内嵌的点类和方向接口。2022/7/27111.3.3 包1问题的提出2什么是包从逻辑概念看,包(package)是类的集合,一个包中包含多个类;从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;包与类的关系,就像文件夹与文件的关系一样。包中还可以再有子包,称为包等级,子包对应一个子文件夹。为解决字节码文件存放和类命名的问题,Java提供了包机制。2022/7/27121.3.1 包(续)创建与包同名的文件夹 F:myjavamy
8、package声明类所在的包 package 包1.包2; 例如:package mypackage; /声明所在的包引用包中的类 包1.包2.类|接口导入包 import 包1.包2.类|接口|*; 例如:import mypackage.Line; import java.awt.*;默认包路径:当前文件夹 3创建、声明和导入包【例1.4】 创建及使用包。2022/7/27131.3.1 包(续)Java源程序结构package /声明包,01句import /导入包,0多句public class 或interface/声明公有类或接口, 01 句,文件名与该名相同class/声明默认类
9、,0多句interface/声明接口,0多句2022/7/2714Java的常用包查看Java包中的类查看Java的源程序及包等级导入Java的包java.lang 语言包java.util 实用包java.awt 抽象窗口工具包java.appletjava.io 输入输出流包 网络包java.sql 数据库应用javax.swing 图形用户界面import java.util.Date; import java.awt.*;解压JDK帮助文档jdk-?-doc.zip解压src.zip1.3.1 包(续) Java API基础2022/7/2715Object类Math数学类Compar
10、able接口基本数据类型包装类String字符串类Class类操作类System系统类Runtime运行时类补充例:猜数游戏(Guess.java) 获得运行时信息(Runtimeinfo.java)4.3 java.lang包中的基础类库2022/7/2716【补充例】计算程序执行的时间/Elapsed.javapublic class Elapsed public static void main(String args) long start, end, sum = 0; System.out.println( a loop from 0 to 1,000,000,000); start
11、 = System.currentTimeMillis(); for (int i = 0; i 1000000000; i+) sum = sum + i * i; end = System.currentTimeMillis(); System.out.println(Elapsed time: + (end - start); 2022/7/2717【补充例】执行Java外部程序/ExecDemo.javapublic class ExecDemo public static void main(String args) Runtime r = Runtime.getRuntime();
12、 Process p = null; try p = r.exec(notepad); /程序暂停1秒钟 Thread.sleep(1000); /关闭外部程序 p.destroy(); /改为p.waitFor() catch (Exception e) System.out.println(Error executing notepad.); 2022/7/27184.4 java.util包中的工具类库4.4.1 日期类4.4.2 Arrays数组类4.4.3 Random随机数序列类 2022/7/27194.4.1 日期类1Date日期类2Calendar类【例4.5】 月历。【补充
13、例】获得系统当前日期和时间,并按指定格式输出。【补充例】 CalculateDay.java2022/7/27204.4.2 Arrays数组类比较两个数组是否相等public static boolean equals(int a, int b) public static boolean equals(Object a, Object b) 填充public static void fill(int a, int val) 排序public static void sort(Object a)public static void sort(T a, Comparator c) 二分法(折半)查找public static int binarySearch(Object a, Object key) public static int binarySearch(T a, T key, Comparator c) 【例4.6】 对象数组的排序和查找。2022/7/27214.4.3 Random随机数序列类 public class Random extends Object implements java.io.Se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45732-2025再生资源回收利用体系回收站点建设规范
- 2025年医学影像技术考试试卷及答案
- 2025年卫生政策与管理知识测评试题及答案
- 2025年市场营销师资格考试市场分析题及答案
- 2025年绿色建筑与可持续发展考试试题及答案
- 2025年儿童发展与教育专业知识考试试卷及答案
- 2025年高级审计师考试试题及答案解读
- 《气候类型与气候变化:高中地理气候教学教案》
- 不定式的结构与用法解析:高中英语学习攻略
- 跨境电子商务平台入驻协议
- 项目延期申请表
- 特许经营管理手册范本(餐饮)
- 计算机应用基础-终结性考试试题国开要求
- 2023年全国统一高考真题物理试卷(新课标ⅰ)(含答案及解析)
- 2023年05月四川省广安市司法局公开招考2名劳务派遣制司法行政辅助人员笔试题库含答案解析
- 《安装条》浙江省建筑设备安装工程提高质量的若干意见
- 安全宣传咨询日活动知识手册
- 压力弹簧力度计算器及计算公式
- 运动员简历模板
- 宴会设计智慧树知到答案章节测试2023年黑龙江旅游职业技术学院
- 2023-2024学年湖北省恩施市小学数学四年级下册期末点睛提升考试题
评论
0/150
提交评论