版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、接口、内部类和Java API基础金陵科技学院4 4面向对象编程2复 习nOOP的概念n类和对象nOOP的特点n类的封装性n类的继承性n类的多态性n类的抽象性面向对象编程3主要内容nJAVA的接口n接口的声明与实现n接口的多重继承性n内部类与内部接口nJAVA API常用包n语言包:java.lang(语言包,Object、数学运算符、字符串、线程、异常处理)n实用包:java.util(工具库类,日期、集合等)面向对象编程4接口(interface)n接口是一种特殊的类,是作为一个整体声明的抽象方法和常量n方法:公有、抽象n常量:隐含为public、final、staticn声明接口publ
2、ic interface 接口 extends 父接口列表 public static final 数据类型 成员变量=常量值; public abstract 返回值类型 成员方法(参数列表);面向对象编程5接口(interface)(续)n实现接口n当一个类实现某一接口 时,必须具体实现该 interface 中定义的所有抽象方法,否则为抽象类n修饰符 class 类 extends 父类 implements 接口列表n利用接口可实现多重继承利用接口可实现多重继承n在程序开发的早期建立一组协议而不具体实现n便于设计更合理的类层次,代码更灵活面向对象编程6接口的特点n接口及接口中成员的访问
3、权限都是publicn接口中的成员方法都是公有的、抽象的公有的、抽象的实例实例成员方法n接口中的所有抽象方法必须全部全部被实现接口的类覆盖,否则为必须声明为抽象类n接口中的成员变量都是常量常量n接口不能被实例化接口不能被实例化n接口是引用数据类型面向对象编程7接口(interface)(续)n例:乐器族谱Music.java我们可以使用接口来实现继承吗?InstrumentWindPercussionStringed面向对象编程8【例4.1】可计算面积接口与实现该接口的矩形类。面向对象编程9【例4.2】可计算体积接口与实现该接口的长方体类。面向对象编程10【例4.3】 球类实现多个接口面向对象
4、编程11Java用接口实现多重继承n接口的多继承n接口与抽象类的区别面向对象编程12内部类与内部接口nJava1.1中允许在类体中定义新的类或接口,称为inner classesn内部类的特性:n内部类不能与外部类同名n内部类具有封装性n内部类具有继承性n内部类具有抽象性面向对象编程13内部类与内部接口n作为成员的特性n使用点运算符“.”引用内嵌类型:外层类型.内嵌类型Line.Pointn彼此信任,能访问对方的所有成员。n具有类中成员的4种访问控制权限。n内部接口总是静态的;静态内部类可声明静态成员,但不能引用外部类的实例成员和其他内部类成员n其他类使用内部类成员的例子:TestInner.
5、javan在内部类中区分同名变量的例子:Outer.java内部类与内部接口n课本P106页例4.2面向对象编程14面向对象编程15【例4.4】 直线类声明内嵌的点类和方向接口(选讲) 面向对象编程16Java的类库结构n类库的结构njava.lang、java.util、java.io、java.applet、java.awt、java.awt.event、java.sqln使用JDK Document查看类库n语言基础类库(java.lang)nObject、数据类型包装类、System、Math、String、Runtime、Class、Comparable可比较接口nJava的工具类库
6、(java.util)n日期、数组、向量、栈、链表、散列表、树n要使用包中的类必需要人工导入包(除java.lang包)面向对象编程17语言基础类库:Math类nMath类用来完成常用的数学运算n数学常量:E,PIn数学运算nMath.abs(- 8.09);nMath.exp( 5.7);nMath.random();nMath.sqrt(9.08);nMath.pow( 2,3);nMath.round(99.6);n均为static,使用时无需创建实例n例:MathApp.java面向对象编程18语言基础类库:比较接口4Comparable可比较接口public interface Co
7、mparable int compareTo(T o) /比较对象 是Comparable接口的参数,表示一个类。 4只有实现Comparable接口的类对象可比较大小4Comparator比较接口public interface Comparator int compare(T cobj1,T cobj2) /指定比较两个对象的规则 课本P109页面向对象编程19语言基础类库:数据类型包装类n基本数据类型 vs. 数据类型类boolean vs Boolean, char vs Character等n数据类型包装类n规定了数据类型的最大值、最小值n构造函数:如new Integer(10);
8、n完成不同数据类型间转换,注意不同的数据类使用的方法会有不同 Double.toString(0.08)、String.valueOf(0.08) Double.valueOf(“0.08”).intValue()、Integer.parseInt(“123”)等面向对象编程20语言基础类库:数据类型包装类nInteger类声明:P110Comparable public static final int MIN_VALUE = 0 x80000000;/最小值常量,-231 public static final int MAX_VALUE = 0 x7fffffff; /最大值常量,231
9、-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 anotherIntege
10、r) /比较两个对象的大小,返回两者之间的差值,实现Comparable接口中方法 public static String toBinaryString(int i) /将i转换成二进制字符串 public static String toOctalString(int i) /将i转换成八进制字符串 public static String toHexString(int i) /将i转换成十六进制字符串 面向对象编程21语言基础类库:String字符串类public final class String extends Object implements java.io.Serializ
11、able, 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) /比较字符串的大
12、小,实现Comparable接口方法 public int compareToIgnoreCase(String str) /比较字符串的大小,忽略字母大小写面向对象编程22语言基础类库:Class类操作类public final class Class public String getName() /返回当前类名字符串 public Class getSuperclass(); /返回当前类的父类 public Package getPackage() /返回当前类所在的包System.out.print(this.getClass().getName()+ );this.getClass
13、().getSuperclass().getName()this.getClass().getPackage().getName() 面向对象编程23语言基础类库:Runtime运行时类public class Runtime extends Object public static Runtime getRuntime() /返回与当前应用程序相联系的运行时环境 public long totalMemory() /返回系统内存空间总量 public long freeMemory() /返回系统内存剩余空间的大小面向对象编程24工具类库:日期(1.1)nCalendar(表示日期和时间)n
14、getInstance( ): 得到表示当前时间的实例nget(int):获取相应信息,如get(Calendar.YEAR)nset(year,month,date):set(Calendar.YEAR,Calendar.MONTH,Calendar.DATE)nset(year,month,date,hour,minute)nGregorianCalendar(Calendar的子类)n实现标准的格林威治时间nDate(1.0):很多方法已deprecatednCalendar.getTime():得到当前时间的Date对象n【例4.5】 月历。面向对象编程25工具类库:Arrays数组类
15、n比较两个数组是否相等public static boolean equals(int a, int b) public static boolean equals(Object a, 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 stati
16、c int binarySearch(T a, T key, Comparator c) 面向对象编程26【例4.5】 对象数组的排序和查找。nPerson对象数组按姓名排序nPerson对象数组按年龄排序 面向对象编程27工具类库:向量类njava.util.Vector n实现链式存储结构、变长的对象数组变长的对象数组序列n适合于如下的情况n需要处理的对象数目不定n序列中元素都是对象,而不是基本数据类型的量n需要做频繁的元素插入和删除n需要定位序列中的对象或其他查找操作面向对象编程28工具类库:向量类(续)n创建向量类的对象Vector MyVector = new Vector(100,
17、50);n向向量序列中添加元素naddElement(添加的对象)ninsertElementAt(添加的对象,添加的位置)n修改序列中的元素nsetElementAt(修改成的对象,修改的位置)面向对象编程29工具类库:向量类(续)n删除向量序列中的元素nremoveElement(删除的对象)nremoveElementAt(删除的位置)nremoveAllElements()n查找序列中的元素nelementAt(查找位置)n缺点:Object的类型不确定n例:CatsAndDogs.javan对象的类型不匹配只能在运行期才能被检测出来面向对象编程30工具类库:栈njava.util.S
18、tack(常用的线性数据结构)n栈底:固定的一端n栈顶:数据元素进出的一端n遵循“ 后进先出”原则LIFOn常用的堆栈操作StackTest.javan创建堆栈:Stack()n压栈操作:push()n弹栈操作:pop()n查看栈顶对象:peek()n查找栈中对象:search(Object o)栈底栈顶弹栈压栈面向对象编程31工具类库:Random随机数序列类 4可获得多个不同的随机数序列public class Random extends Object implements java.io.Serializable public Random() /创建一个随机数序列 public Random(long seed) /seed指定随机数序列种子 public int nextInt() /返回下一个随机数 public in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐舒适从中国制造到中国品牌卫生用品龙头亮剑非洲出海全球
- 国家统计局公布各项经济与人口数据65岁及以上人口占比进一步提升
- 吉林省松原市前郭尔罗斯蒙古自治县2025-2026学年七年级上学期期末语文试题(含答案)(含解析)
- 探寻中国文字博物馆资源在初中美术教学中的多元应用与价值升华
- 文旅产业新风口:2025年文化旅游主题乐园IP开发项目市场潜力报告
- 政治试卷(解析版)福建省福州市福九联盟(格致+八县一中)2025-2026学年度第一学期高二11月期中联考(11.13-11.14)
- 秋日远足活动的事件记叙作文(8篇)
- 文物保藏安全保证承诺书5篇
- 2026年制造业行业工业互联网创新报告及智能制造转型路径分析报告
- 低碳环保先锋:2025年城市公共自行车智能租赁系统技术创新与产业应用报告
- 2026年春季学期全体教师大会校长讲话:点燃新学期教育奋进之力
- 2026年初中物理中考必背复习提纲
- 手部关节损伤的人工关节置换
- 标准日本语高级课件
- 山东省平度市九中2026届化学高一第一学期期末联考试题含解析
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
- 2026届安徽省六安二中河西校区高二化学第一学期期末调研试题含答案
- JJF 1218-2025标准物质研制报告编写规则
- 一次函数-经典趣题探究
- 解读《水利水电工程单元工程施工质量验收标准第3部分:地基处理与基础工程》(SLT 631.3-2025)课件
- 京东人事与组织效率铁律十四条
评论
0/150
提交评论