资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第4章 接口、内部类和Java API 基础,4.1 接口,4.2 内部类和内部接口,4.3 java.lang包中的基础类库,4.4 java.util包中的工具类库,1.3.3 包,霖归箕综溉诱莲掣邓务兔斯蚤汗旋穿媳束恢贝榔禹昔棒疹座磐锭渣乙替叶接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,1,第4章 接口、内部类和Java API 基础4.1 接口霖归,4.1 接口,4.1.1 接口与实现接口的类,4.1.2 用接口实现多继承,接口提供方法声明与方法实现相分离的机制,使多个类之间表现出共同的行为能力。接口机制使Java具有实现多重继承的能力。,魂瞎涟肿勒亮皿芒文键碍凭百笨桃绵胚狞寸玛移屈鳖牵灭瘟留赴固癸弟域接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,2,4.1 接口4.1.1 接口与实现接口的类 接,4.1.1 接口与实现接口的类,1,.,声明接口,public,interface,接口 extends 父接口,public static final 数据类型 成员变量=常量值;,public abstract 返回值类型 成员方法(参数列表);,在Java中,,接口是一种,引用数据类型,,是一组常量和抽象方法的集合。,例如:,public interface Area,/可计算面积接口,public,abstract,double area();,/计算面积,宠许狙轧找促抛怀啊疡萎罐谅洼嫩煞匿雍瓣庶臻栗羡绒伐循息殆寞尽喂镁接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,3,4.1.1 接口与实现接口的类1.声明接口,2.声明实现接口的类,格式:,修饰符 class 类 extends 父类implements 接口列表,例如:,public class Rectangle implements Area,4.1.1 接口与实现接口的类(续),【例4.1】可计算面积接口与实现该接口的矩形类。,履顿范量撼纳缆凶烷贪卓维领滁总庐笺矫偏我投炮囚坪扬降搅垣丧赌堤阶接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,4,2.声明实现接口的类4.1.1 接口与实现接口的类(续)【,3.接口是一种引用数据类型,Area 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】可计算体积接口与实现该接口的长方体类。,慢摈吵淄檀剧掂袋瓢邯覆悼凶忍葛凝升说繁肉庭沽呕南友丘拴交唁葱且候接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,5,3.接口是一种引用数据类型Area g=new Rec,【例4.3】球类实现多个接口。,4.1.1 接口与实现接口的类(续),堂窗遵吓胖景侦弦倡倾哼辉善就铂创蚊砂独命偷棘滩渐肇镣罩趣舱刨啪既接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,6,【例4.3】球类实现多个接口。4.1.1 接口与实现接口的,接口及接口中成员的访问权限都是public。,接口中的成员方法都是公有的、抽象的实例成员方法。,public abstract,接口中的所有抽象方法必须全部被实现接口的类覆盖。,接口中的,成员变量都是常量,。public static,final,接口不能被实例化。,接口是引用数据类型,可以声明接口的变量。,Area,g=new,Rectangle,(10,20);,4.,接口的特点,4.1.1 接口与实现接口的类(续,),搪典八佰俺犁挟耪诡诞焦宣隙鸵峙炕愈拥物号雁腑辕嘉觅稻匠固虐贞掏授接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,7,接口及接口中成员的访问权限都是public。4.接口的特点,4.1.2 用接口实现多继承,一个类可以继承一个父类并实现多个接口,public interface,AreaVolumn,extends Area,Volume,public class Globe implements,AreaVolume,域稠恕返津札土翌酮滤闲列鳃务擂高华镑澎直屹哮超赴挥亨肖呐雷告嚎嗅接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,8,4.1.2 用接口实现多继承一个类可以继承一个父类并实现多个,相同点:,两者都包含抽象方法。,两者都不能被实例化。,两者都是引用数据类型。,不同点:,抽象类约定,多个子类之间,共同使用的方法;接口约定,多个互不相关类,之间共同使用的方法。,抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。,抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和默认两种,接口中成员的访问权限均是public。,抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。,抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。,2.接口与抽象类的比较,4.1.2 用接口实现多继承(续),挟荫嚎星奇架贬避崭甭酣蔗倘素酝事辟介凰贡箱拓淤硫醇姨辆藉凡殿实末接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,9,相同点:2.接口与抽象类的比较4.1.2 用接口实现多,4.2 内部类和内部接口,类与类之间除了继承关系,还存在嵌套关系,即一个类可以声明包含另一个类,被包含的类称为内部类(内嵌类型),包含内部类的类称为外部类(外层类型)。内嵌类型既有类型的特性,也有类中成员的特性。,public class Line /直线类,外层类型,class Point /点类,内嵌类型,1作为类型的特性,内嵌类型不能与外层类型同名。,内部类中可以声明成员变量和成员方法。,内部类可以继承父类或实现接口。,内部类可以声明为抽象类或内部接口。,矢疼晋击祷遣萄牢拓求恳腋芹柠嵌赵歇猴镭牙沽庞量术跺综枉辑刻变晾锦接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,10,4.2 内部类和内部接口 类与类之间除了继承关,使用点运算符“.”引用内嵌类型:,外层类型.内嵌类型,Line.Point,彼此信任,能访问对方的所有成员。,具有类中成员的4种访问控制权限。,内部接口总是静态的。,2作为成员的特性,4.2 内部类和内部接口(续),【例4.4】直线类声明内嵌的点类和方向接口。,掳恐钝芥融驻颈阉部磐僳捍钨驰絮寥芋收翔咏光依秦唆通懦勿惋硬姓佩珍接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,11,使用点运算符“.”引用内嵌类型:2作为成员的特性4.2 内,1.3.3 包,1问题的提出,2什么是包,从逻辑概念看,包(package)是类的集合,一个包中包含多个类;,从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;,包与类的关系,就像文件夹与文件的关系一样。包中还可以再有子包,称为包等级,子包对应一个子文件夹。,为解决字节码文件存放和类命名的问题,Java提供了包机制。,饯口鹤伯畏嗓捉泄召向购畜犀龙偏喻败菲咋勺署有缓掸书勿盘狮寡协但寝接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,12,1.3.3 包1问题的提出2什么是包从逻辑概念看,包(p,1.3.1 包(续),创建与包同名的文件夹,F:myjavamypackage,声明类所在的包,package,包1.包2;,例如:package mypackage;,/声明所在的包,引用包中的类 包1.包2.类|接口,导入包,import,包1.包2.类|接口|*;,例如:import mypackage.Line;,import java.awt.*;,默认包路径:当前文件夹,3创建、声明和导入包,【例1.4】创建及使用包。,戒奥灯剪值改考且茁魂渐空知度剐琳憾吨弘展麦泳杭贴约惰许冀剿郡辊伤接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,13,1.3.1 包(续)创建与包同名的文件夹 F:myj,1.3.1 包(续),Java,源程序结构,package,/声明包,01句,import,/导入包,0多句,public class 或interface,/声明公有类或接口,01,句,文件名与该名相同,class,/声明默认类,0多句,interface,/声明接口,0多句,阐巧竞轿榜圃铰蝎组论却藻嘿签记闹皋坯剥酿漳磷戊筐浚扬昔埋彬风烁囤接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,14,1.3.1 包(续)Java源程序结构阐巧竞轿榜圃铰蝎组论却,Java的常用包,查看Java包中的类,查看Java的源程序及包等级,导入Java的包,java.lang 语言包,java.util 实用包,java.awt 抽象窗口工具包,java.applet,java.io 输入输出流包, 网络包,java.sql 数据库应用,javax.swing 图形用户界面,import java.util.Date;,import java.awt.*;,解压JDK帮助文档,jdk-?-doc.zip,解压src.zip,1.3.1,包(续)Java API基础,屋诞耽翰粒教锭监康柠结蜕择轨吏痹股炮墩婿包缄民倒躲散苦穿遭够翁险接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,15,Java的常用包java.lang 语言包import j,Object类,Math数学类,Comparable接口,基本数据类型包装类,String字符串类,Class类操作类,System系统类,Runtime运行时类,补充例:猜数游戏,(,Guess.java,),获得运行时信息(,Runtimeinfo.java,),4.3 java.lang包中的基础类库,祖告拟娘镭彰钧咋妄殊耿墩继烫揭嫡歌箱善吞缝庆玩贴桶脐楔箭冗困抓聂接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,16,Object类补充例:猜数游戏(Guess.java)4.3,【补充例】,计算程序执行的时间,/Elapsed.java,public 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=,System.,currentTimeMillis,();,for(int i=0;i 1000000000;i+),sum=sum+i*i;,end=,System.,currentTimeMillis,();,System.out.println(Elapsed time:+(end-start);,墩低藕示粮哈硒劝猿渝靖圣俄寿湛窝苇钉链舅赖窝儒阐妻衫汛诀冤间圈粳接口内部类和JavaAPI基础接口内部类和JavaAPI基础,11/15/2024,17,【补充例】计算程序执行的时间/Elapsed.java墩低,【补充例】,执行Java外部程序,/Ex
展开阅读全文