接口、内部类和Java_API基础课件.ppt

上传人:scccc 文档编号:13547473 上传时间:2022-01-15 格式:PPT 页数:23 大小:296KB
返回 下载 相关 举报
接口、内部类和Java_API基础课件.ppt_第1页
第1页 / 共23页
接口、内部类和Java_API基础课件.ppt_第2页
第2页 / 共23页
接口、内部类和Java_API基础课件.ppt_第3页
第3页 / 共23页
接口、内部类和Java_API基础课件.ppt_第4页
第4页 / 共23页
接口、内部类和Java_API基础课件.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《接口、内部类和Java_API基础课件.ppt》由会员分享,可在线阅读,更多相关《接口、内部类和Java_API基础课件.ppt(23页珍藏版)》请在三一文库上搜索。

1、第4章 接口、内部类和Java API 基础4.1 接口4.2 内部类和内部接口4.3 java.lang包中的基础类库4.4 java.util包中的工具类库1.3.3 包2022/1/154.1 接口4.1.1 接口与实现接口的类4.1.2 用接口实现多继承 接口提供方法声明与方法实现相分离的机制,使多个类之间表现出共同的行为能力。接口机制使Java具有实现多重继承的能力。2022/1/154.1.1 接口与实现接口的类1. 声明接口public interface 接口 extends 父接口 public static final 数据类型 成员变量=常量值; public abstr

2、act 返回值类型 成员方法(参数列表); 在Java中,接口是一种引用数据类型,是一组常量和抽象方法的集合。例如:public interface Area /可计算面积接口 public abstract double area(); /计算面积2022/1/152. 声明实现接口的类格式:修饰符 class 类 extends 父类implements 接口列表例如: public class Rectangle implements Area4.1.1 接口与实现接口的类(续)【例4.1】 可计算面积接口与实现该接口的矩形类。2022/1/153. 接口是一种引用数据类型Area g

3、= 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/1/15【例4.3】 球类实现多个接口。4.1.1 接口与实现接口的类(续)2022/1/15n接口及接口中成员的访问权限都是public。n接口中的成员方法都是公有的、

4、抽象的实例成员方法。 public abstractn接口中的所有抽象方法必须全部被实现接口的类覆盖。n接口中的成员变量都是常量。public static finaln接口不能被实例化。n接口是引用数据类型,可以声明接口的变量。 Area g = new Rectangle(10,20); 4. 接口的特点4.1.1 接口与实现接口的类(续)2022/1/154.1.2 用接口实现多继承n一个类可以继承一个父类并实现多个接口public interface AreaVolumn extends Area,Volumepublic class Globe implements AreaVolu

5、me2022/1/15n相同点:n两者都包含抽象方法。n两者都不能被实例化。n两者都是引用数据类型。 n不同点:n抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。n抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。n抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。n抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。n抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。 2. 接口与抽象类的比较4.1

6、.2 用接口实现多继承(续)2022/1/154.2 内部类和内部接口 类与类之间除了继承关系,还存在嵌套关系,即一个类可以声明包含另一个类,被包含的类称为内部类(内嵌类型),包含内部类的类称为外部类(外层类型)。内嵌类型既有类型的特性,也有类中成员的特性。public class Line /直线类,外层类型 class Point /点类,内嵌类型1作为类型的特性n内嵌类型不能与外层类型同名。n内部类中可以声明成员变量和成员方法。n内部类可以继承父类或实现接口。n内部类可以声明为抽象类或内部接口。2022/1/15n使用点运算符“.”引用内嵌类型:n外层类型.内嵌类型 Line.Point

7、n彼此信任,能访问对方的所有成员。n具有类中成员的4种访问控制权限。n内部接口总是静态的。2作为成员的特性4.2 内部类和内部接口(续)【例4.4】 直线类声明内嵌的点类和方向接口。2022/1/151.3.3 包1问题的提出2什么是包n从逻辑概念看,包(package)是类的集合,一个包中包含多个类;n从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;n包与类的关系,就像文件夹与文件的关系一样。包中还可以再有子包,称为包等级,子包对应一个子文件夹。n为解决字节码文件存放和类命名的问题,Java提供了包机制。2022/1/151.3.1 包(续)n创建与包同

8、名的文件夹 F:myjavamypackagen声明类所在的包 package 包1.包2; 例如:package mypackage; /声明所在的包n引用包中的类 包1.包2.类|接口n导入包 import 包1.包2.类|接口|*; 例如:import mypackage.Line; import java.awt.*;n默认包路径:当前文件夹 3创建、声明和导入包【例1.4】 创建及使用包。2022/1/151.3.1 包(续)Java源程序结构package /声明包,01句import /导入包,0多句public class 或interface /声明公有类或接口, 01 句,

9、文件名与该名相同class/声明默认类,0多句interface/声明接口,0多句2022/1/15nJava的常用包n查看Java包中的类n查看Java的源程序及包等级n导入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/1/15n

10、Object类nMath数学类nComparable接口n基本数据类型包装类nString字符串类nClass类操作类nSystem系统类nRuntime运行时类补充例:猜数游戏补充例:猜数游戏(Guess.java) 获得运行时信息(获得运行时信息(Runtimeinfo.javaRuntimeinfo.java)4.3 java.lang包中的基础类库2022/1/15【补充例】计算程序执行的时间/Elapsed.javapublic class Elapsed public static void main(String args) long start, end, sum = 0; S

11、ystem.out.println( a loop from 0 to 1,000,000,000); start = System.System.currentTimeMilliscurrentTimeMillis();(); for (int i = 0; i 1000000000; i+) sum = sum + i * i; end = System.System.currentTimeMilliscurrentTimeMillis();(); System.out.println(Elapsed time: + (end - start); 2022/1/15【补充例】执行Java外

12、部程序/ExecDemo.javapublic class ExecDemo public static void main(String args) Runtime r = Runtime.getRuntime(); Process p = null; try p = r.execr.exec(notepad); /程序暂停1秒钟 Thread.sleep(1000Thread.sleep(1000); /关闭外部程序 p.destroyp.destroy(); /改为p.waitFor() catch (Exception e) System.out.println(Error execu

13、ting notepad.); 2022/1/154.4 java.util包中的工具类库4.4.1 日期类4.4.2 Arrays数组类4.4.3 Random随机数序列类 2022/1/154.4.1 日期类1Date日期类2Calendar类【例4.5】 月历。【补充例】获得系统当前日期和时间,并按指定格式输出。【补充例】 CalculateDay.java2022/1/154.4.2 Arrays数组类n比较两个数组是否相等public static boolean equals(int a, int b) public static boolean equals(Object a,

14、Object b) n填充public static void fill(int a, int val) n排序public static void sort(Object a)public static void sort(T a, Comparator c) n二分法(折半)查找public static int binarySearch(Object a, Object key) public static int binarySearch(T a, T key, Comparator c) 【例4.6】 对象数组的排序和查找。2022/1/154.4.3 Random随机数序列类 public class Random extends Object implements java.io.Serializable public Random() /创建一个随机数序列 public Random(long seed) /seed指定随机数序列种子 public int nextInt() /返回下一个随机数 public int nextInt(int n) /返回下一个随机数(n以内) public double nextDouble() 书面作业:实验4.1、4.22022/1/15谢谢!2022/1/15

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1