




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
接口、内部类和Java API基础,金陵科技学院 刘晶 2011.3,4,面向对象编程,2,复 习,OOP的概念 类和对象 OOP的特点 类的封装性 类的继承性 类的多态性 类的抽象性,面向对象编程,3,主要内容,JAVA的接口 接口的声明与实现 接口的多重继承性 内部类与内部接口 JAVA API常用包 语言包:java.lang 实用包:java.util,面向对象编程,4,接口(interface),接口是一种特殊的类,是作为一个整体声明的抽象方法和常量 方法:公有、抽象、无定义的 常量:隐含为public、final和static的 声明接口 public interface 接口 extends 父接口列表 public static final 数据类型 成员变量=常量值; public abstract 返回值类型 成员方法(参数列表); ,面向对象编程,5,接口(interface)(续),实现接口 当一个类实现某一接口 时,必须具体实现该 interface 中定义的所有抽象方法,否则为抽象方法 修饰符 class 类 extends 父类 implements 接口列表 利用接口可实现多重继承 在程序开发的早期建立一组协议而不具体实现 便于设计更合理的类层次,代码更灵活,面向对象编程,6,接口的特点,接口及接口中成员的访问权限都是public 接口中的成员方法都是公有的、抽象的实例成员方法 接口中的所有抽象方法必须全部被实现接口的类覆盖 接口中的成员变量都是常量 接口不能被实例化 接口是引用数据类型,面向对象编程,7,接口(interface)(续),例:乐器族谱Music.java,我们可以使用接口来实现继承吗?,面向对象编程,8,【例4.1】可计算面积接口与实现该接口的矩形类。,面向对象编程,9,【例4.2】可计算体积接口与实现该接口的长方体类。,面向对象编程,10,【例4.3】 球类实现多个接口,面向对象编程,11,Java用接口实现多重继承,接口的多继承 接口与抽象类的区别,面向对象编程,12,内部类与内部接口,Java1.1中允许在类体中定义新的类或接口,称为inner classes 内部类的特性: 内部类不能与外部类同名 内部类具有封装性 内部类具有继承性 内部类具有抽象性,面向对象编程,13,内部类与内部接口,作为成员的特性 使用点运算符“.”引用内嵌类型: 外层类型.内嵌类型 Line.Point 彼此信任,能访问对方的所有成员。 具有类中成员的4种访问控制权限。 内部接口总是静态的;静态内部类可声明静态成员,但不能引用外部类的实例成员和其他内部类成员 其他类使用内部类成员的例子:TestInner.java 在内部类中区分同名变量的例子:Outer.java,面向对象编程,14,【例4.4】 直线类声明内嵌的点类和方向接口。,面向对象编程,15,Java的类库结构,类库的结构 java.lang、java.util、java.io、java.applet、java.awt、java.awt.event、、java.sql 使用JDK Document查看类库 语言基础类库(java.lang) Object、数据类型包装类、System、Math、String、Runtime、Class、Comparable可比较接口 Java的工具类库(java.util) 日期、数组、向量、栈、链表、散列表、树 要使用包中的类必需要人工导入包(除java.lang包),面向对象编程,16,语言基础类库:Math类,Math类用来完成常用的数学运算 数学常量:E,PI 数学运算 Math.abs(- 8.09); Math.exp( 5.7); Math.random(); Math.sqrt(9.08); Math.pow( 2,3); Math.round(99.6); 均为static,使用时无需创建实例 例:MathApp.java,面向对象编程,17,语言基础类库:比较接口,Comparable可比较接口 public interface Comparable int compareTo(T o) /比较对象 是Comparable接口的参数,表示一个类。 只有实现Comparable接口的类对象可比较大小 Comparator比较接口(属于java.util包) public interface Comparator int compare(T cobj1,T cobj2) /指定比较两个对象的规则 ,面向对象编程,18,语言基础类库:数据类型包装类,基本数据类型 vs. 数据类型类 boolean vs Boolean, char vs Character等 数据类型包装类 规定了数据类型的最大值、最小值 构造函数:如new Integer(10); 完成不同数据类型间转换,注意不同的数据类使用的方法会有不同 Double.toString(0.08)、String.valueOf(0.08) Double.valueOf(“0.08”).intValue()、Integer.parseInt(“123”)等,面向对象编程,19,语言基础类库:数据类型包装类,Integer类声明: Comparable public static final int MIN_VALUE = 0x80000000;/最小值常量,-231 public static final int MAX_VALUE = 0x7fffffff; /最大值常量,231-1 public Integer(int value) /构造方法 public Integer(String s) throws NumberFormatException public static int parseInt(String s) throws NumberFormatException /将字符串转换为整数,静态方法 public boolean equals(Object obj) /覆盖Object类中方法 public String toString() /覆盖Object类中方法 public int compareTo(Integer anotherInteger) /比较两个对象的大小,返回两者之间的差值,实现Comparable接口中方法 public static String toBinaryString(int i) /将i转换成二进制字符串 public static String toOctalString(int i) /将i转换成八进制字符串 public static String toHexString(int i) /将i转换成十六进制字符串 ,面向对象编程,20,语言基础类库:String字符串类,public final class String extends Object implements java.io.Serializable, Comparable, CharSequence public String() /构造方法 public String(String original) public String toString() /覆盖Object类中方法 public int length() /返回字符串的长度 public boolean equals(Object obj) /比较字符串是否相等 public boolean equalsIgnoreCase (String s)/忽略字母大小写 public int compareTo(String anotherString) /比较字符串的大小,实现Comparable接口方法 public int compareToIgnoreCase(String str) /比较字符串的大小,忽略字母大小写 ,面向对象编程,21,语言基础类库:Class类操作类,public final class Class public String getName() /返回当前类名字符串 public Class getSuperclass(); /返回当前类的父类 public Package getPackage() /返回当前类所在的包 System.out.print(this.getClass().getName()+“ “); this.getClass().getSuperclass().getName() this.getClass().getPackage().getName(),面向对象编程,22,语言基础类库:Runtime运行时类,public class Runtime extends Object public static Runtime getRuntime() /返回与当前应用程序相联系的运行时环境 public long totalMemory() /返回系统内存空间总量 public long freeMemory() /返回系统内存剩余空间的大小 ,面向对象编程,23,工具类库:日期(1.1),Calendar(表示日期和时间) getInstance( ): 得到表示当前时间的实例 get(int):获取相应信息,如get(Calendar.YEAR) set(year,month,date):set(Calendar.YEAR,Calendar.MONTH,Calendar.DATE) set(year,month,date,hour,minute) GregorianCalendar(Calendar的子类) 实现标准的格林威治时间 Date(1.0):很多方法已deprecated Calendar.getTime():得到当前时间的Date对象 【例4.5】 月历。,面向对象编程,24,工具类库: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),面向对象编程,25,【例4.6】 对象数组的排序和查找。,Person对象数组按姓名排序 Person对象数组按年龄排序,面向对象编程,26,工具类库:向量类,java.util.Vector 实现链式存储结构、变长的对象数组序列 适合于如下的情况 需要处理的对象数目不定 序列中元素都是对象,而不是基本数据类型的量 需要做频繁的元素插入和删除 需要定位序列中的对象或其他查找操作,面向对象编程,27,工具类库:向量类(续),创建向量类的对象 Vector MyVector = new Vector(100,50); 向向量序列中添加元素 addElement(添加的对象) insertElementAt(添加的对象,添加的位置) 修改序列中的元素 setElementAt(修改成的对象,修改的位置),面向对象编程,28,工具类库:向量类(续),删除向量序列中的元素 removeElement(删除的对象) removeElementAt(删除的位置) removeAllElements() 查找序列中的元素 elementAt(查找位置) 缺点:Object的类型不确定 例:CatsAndDogs.java 对象的类型不匹配只能在运行期才能被检测出来,面向对象编程,29,工具类库:栈,java.util.Stack(常用的线性数据结构) 栈底:固定的一端 栈顶:数据元素进出的一端 遵循“ 后进先出”原则LIFO 常用的堆栈操作StackTest.java 创建堆栈:Stack() 压栈操作:push() 弹栈操作:pop() 查看栈顶对象:seek() 查找栈中对象:search(Object o),面向对象编程,30,工具类库:Random随机数序列类,可获得多个不同的随机数序列 public class Random extends Object implements java.io.Serializable public Random() /创建一个随机数序列 public Random(long seed) /seed指定随机数序列种子 public int nextInt() /返回下一个随机数 public int nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台入侵检测系统智能化检测与响应优化
- 2025年文化娱乐产业消费者行为分析:市场细分与竞争策略001
- 2026届内蒙古喀喇沁旗锦山蒙古族中学化学高二上期中学业水平测试模拟试题含解析
- 现代诗歌批评性鉴赏课件
- 2025年高中地理教师资格证考试教育评价方法押题真题试卷
- 2026届河北省唐山市重点初中高二化学第一学期期末质量跟踪监视模拟试题含答案
- 2026届四川省广安遂宁资阳等六市化学高二上期末教学质量检测试题含答案
- 2026届陕西省延安市吴起县高级中学化学高三上期末综合测试试题含解析
- 眼睛科普问答题目及答案
- 2026届嘉峪关市重点中学化学高一第一学期期中学业水平测试模拟试题含解析
- 急性st段抬高型心肌梗死
- 幼儿文学课件完整版
- DB6101T3128-2022养老服务规范 助餐服务
- GB/T 21709.8-2008针灸技术操作规范第8部分:皮内针
- 资本论第三卷讲义课件
- 离心式压缩机试车记录
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 地下室开槽引流方案
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
评论
0/150
提交评论