版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java2程序设计实用教程第2版,叶核亚,Java2程序设计实用教程 (第2版),第1章 Java概述 第2章 Java语言基础 第3章 面向对象的核心特性 第4章 接口、内部类和包 第5章 异常处理 第6章 图形用户界面 第7章 多线程 第8章 Applet应用程序 第9章 输入/输出流和文件操作 第10章 网络通信 第11章 数据库应用 第12章 JSP 第13章 综合应用设计,Java2程序设计实用教程(第2版),第4章 接口、内部类和包,4.1 接口 4.2 内部类 4.3 包 4.4 Java API基础,Java2程序设计实用教程(第2版),4.1 接口,4.1.1 接口与实现接口
2、的类 4.1.2 用接口实现多重继承,Java2程序设计实用教程(第2版),4.1.1 接口与实现接口的类,声明接口 public interface 接口 extends 父接口 public static final 数据类型 成员变量=常量值; public abstract 返回值类型 成员方法(参数列表); 例如, public interface Plane1 /平面图形接口 public abstract double area(); /计算面积 ,Java2程序设计实用教程(第2版),2. 声明实现接口的类,修饰符 class 类 extends 父类 implements 接
3、口列表 例如, public class Rectangle2 implements PlaneGraphics2,Java2程序设计实用教程(第2版),3. 接口的作用,图4.1 图形接口与实现图形接口的类,Java2程序设计实用教程(第2版),【例4.1】 图形接口与实现图形接口的类。,设计平面图形接口PlaneGraphics2。 设计长方形类Rectangle2,实现平面图形接口。,Java2程序设计实用教程(第2版),4. 接口的特点,接口及接口中成员的访问权限都是public 接口中的成员方法都是公有的、抽象的实例成员方法 接口中的所有抽象方法必须全部被实现接口的类覆盖 接口中的成
4、员变量都是常量 接口不能被实例化 接口是引用数据类型 PlaneGraphics2 g1 = new Rectangle2(10,20);,Java2程序设计实用教程(第2版),4.1.2 用接口实现多重继承,一个类可以继承一个父类并实现多个接口 图4.2 继承机制,Java2程序设计实用教程(第2版),【例4.2】 长方体类继承长方形类并实现立体图形接口。,设计立体图形接口SolidGraphics2。 设计长方体类Cuboid1,继承长方形类并实现立体图形接口。 长方体类Cuboid1中必须再次覆盖area()和print()方法。 计算周长方法存在问题。,Java2程序设计实用教程(第2
5、版),图4.3 长方体类的多重继承,Java2程序设计实用教程(第2版),【例4.3】 球类实现多个接口。,图4.4 球类的多重继承,Java2程序设计实用教程(第2版),2. 接口的继承,图4.5 接口的继承,Java2程序设计实用教程(第2版),3. 接口与抽象类的区别,相同点: 两者都包含抽象方法。 两者都不能被实例化。 两者都是引用数据类型。 不同点: 抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。 抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。 抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和
6、默认两种,接口中成员的访问权限均是public。 抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法全部是抽象方法,不能声明构造方法。 抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。,Java2程序设计实用教程(第2版),4. Java用接口实现多重继承比C+多重继承的优越之处,图4.6 Java单重继承时执行父类或祖先类中的方法,Java2程序设计实用教程(第2版),4.2 内部类,声明内部类 public class Line /直线类,外部类 protected Point p1,p2; /直线的起点和终点 protected class Point
7、/点类,内部类 protected int x,y; /内部类的成员变量 protected Point(int x,int y) /内部类的构造方法 this.x = x; this.y = y; ,Java2程序设计实用教程(第2版),2. 内部类特性,内部类的类特性 内部类不能与外部类同名。 内部类具有封装性。 内部类具有继承性。 内部类具有抽象性。 内部类的成员特性 使用点运算符“.”引用内部类。例如: Line.Point 内部类具有4种类中成员的访问权限。 内部类具有静态特性。,Java2程序设计实用教程(第2版),【例4.4】 设计点类作为直线类的内部类。,设计一个接口Direc
8、tion,其中约定表示左、右、上、下4个方向的4个常量。 设计点类作为直线类的内部类,点类实现方向接口。 声明和使用接口中常量 声明和调用内部类的成员方法 内部类Point编译生成字节码的文件名为Line$Point.class。,Java2程序设计实用教程(第2版),图4.7 以(100,100)为起点的4个方向的4条直线,Java2程序设计实用教程(第2版),4.3 包,4.3.1 包的概念 4.3.2 创建、声明和导入包,Java2程序设计实用教程(第2版),4.3.1 包的概念,问题的提出 什么是包 从逻辑概念看,包(package)是类的集合,一个包中包含多个类; 从存储概念看,包是
9、类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件; 包与类的关系,就像文件夹与文件的关系一样。包中还可以再有子包,称为包等级,子包对应一个子文件夹。,Java2程序设计实用教程(第2版),4.3.2 创建、声明和导入包,创建与包同名的文件夹 set classpath=.;C:Program FilesJavajdk1.5.0lib;C:myjava 声明类所在的包 package 包1.包2; 例如, package mypackage; /声明所在的包 public interface PlaneGraphics2 引用包中的类 包1.包2.类|接口,Java2程序设计实
10、用教程(第2版),4.3.2 创建、声明和导入包,导入包 import 包1.包2.类|接口|*; import mypackage.PlaneGraphics2; 默认包路径:当前文件夹 包之间类及类中成员的访问权限 包中非内部的类或接口只有2种访问权限:public和缺省。 在类中成员的4种访问权限中,public和private权限与包无关,而protected和缺省权限与包有关。,Java2程序设计实用教程(第2版),4.3.2 创建、声明和导入包,Java源程序结构 package /声明包,01句 import /导入包,0多句 public class 或interface /声
11、明公有类或接口,01句,文件名与该名相同 class/声明默认类,0多句 interface/声明接口,0多句 包可以压缩成文件 jar.exe,Java2程序设计实用教程(第2版),4.4 Java API基础,4.4.1 Java提供的包概述 4.4.2 java.lang语言包 4.4.3 java.util实用包,Java2程序设计实用教程(第2版),4.4.1 Java提供的包概述,Java的常用包 java.lang 语言包 java.util 实用包 java.awt 抽象窗口工具包 java.applet java.io 输入输出流包 网络包 java.sql javax.sw
12、ing 查看Java包中的类 查看Java的源程序及包等级 导入Java的包 import java.util.Date;,Java2程序设计实用教程(第2版),4.4.2 java.lang语言包,Object类 package java.lang; public class Object public Object() /构造方法 public final native Class getClass(); /返回当前对象所在的类 public boolean equals(Object obj) /比较当前对象与obj是否相等 public String toString() /返回当前对
13、象的信息字符串 protected void finalize() throws Throwable /析构方法 ,Java2程序设计实用教程(第2版),图4.13 Object类中equals()方法,Java2程序设计实用教程(第2版),2. Math数学类,public final class Math extends Object private Math() public static final double E = 2.7182818284590452354; /常量 public static final double PI = 3.14159265358979323846;
14、public static double abs(double a) /求绝对值 public static double max(double a,double b) /最大值 public static double min(double a,double b) /最小值 public static double random() /返回一个0.01.0之间的随机数 ,Java2程序设计实用教程(第2版),3. Comparable接口,public interface Comparable int compareTo(T o) /比较对象 其中,是Comparable接口的参数,表示一个
15、类。,Java2程序设计实用教程(第2版),4. 基本数据类型的包装类,8个Byte、Short、Integer、Long、Float、Double、Character、Boolean。 public final class Integer extends Number implements Comparable public static final int MIN_VALUE = 0 x80000000;/最小值常量,-231 public static final int MAX_VALUE = 0 x7fffffff; /最大值常量,231-1 public Integer(int v
16、alue) /构造方法 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) /比较两个对象的大小,返回两者之间的差值
17、,实现Comparable接口中方法 ,Java2程序设计实用教程(第2版),5. 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(Obje
18、ct obj) /比较字符串是否相等,覆盖Object类中方法 public boolean equalsIgnoreCase (String s) /比较字符串是否相等,忽略字母大小写 public int compareTo(String anotherString)/比较字符串的大小,实现Comparable接口方法 public int compareToIgnoreCase(String str) /比较字符串的大小,忽略字母大小写 ,Java2程序设计实用教程(第2版),【例4.5】 设计一个已排序的对象数组类,实现查找算法。,数组元素的通用性设计 private Object t
19、able; private Comparable table; /存放实现Comparable接口对象 使用Integer对象的必要性 使用泛型类与否的差别 public int compareTo(Integer anotherInteger) /Integer类 public int compareTo(String anotherString) /String类 SortedArray sa1 = new SortedArray(10);,Java2程序设计实用教程(第2版),6. Class类操作类,public final class Class private Class() /构
20、造方法 public String getName() /返回当前类名字符串 public Class getSuperclass(); /返回当前类的父类 public Package getPackage() /返回当前类所在的包 System.out.print(this.getClass().getName()+ );,Java2程序设计实用教程(第2版),7. System系统类,public final class System extends Object private System() public final static InputStream in = nullInpu
21、tStream(); public final static PrintStream out = nullPrintStream(); public final static PrintStream err = nullPrintStream(); public static native viod arraycopy(Object src, int src_pos, Object dst, int dst_pos, int length) /复制数组 public static void exit(int status) /结束当前运行的程序 public static native lon
22、g currentTimeMillis(); /获得当前日期和时间,返回从1970-1-1 00:00:00开始至当前时间的累计毫秒数 public static Properties getProperties() /获得系统全部属性 public static String getProperty(String key) /获得指定系统属性 ,Java2程序设计实用教程(第2版),8. Runtime运行时类,public class Runtime extends Object private Runtime() /构造方法 public static Runtime getRuntim
23、e() /返回与当前应用程序相联系的运行时环境 public long totalMemory() /返回系统内存空间总量 public long freeMemory() /返回系统内存剩余空间的大小 【例4.6】 获得运行时信息。,Java2程序设计实用教程(第2版),4.4.3 java.util实用包,日期类 Date日期类 public class Date extends Object implements java.io.Serializable, Cloneable, Comparable public Date() /构造方法,获得系统当前日期和时间的Date对象 this(
24、System.currentTimeMillis(); public Date(long date) /构造方法,以长整型值创建Date对象 public void setTime(long time) /设置时间对应的长整型值 public long getTime() /返回对象中的时间值 public boolean before(Date when) /判断是否在指定日期之前 public boolean after(Date when) /判断是否在指定日期之后 public int compareTo(Date anotherDate) /比较两个日期 ,Java2程序设计实用教程
25、(第2版),(2) Calendar日期类,public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable public static final int YEAR /年,常量 public static final int MONTH /月 public static final int DATE /日 public static final int HOUR /时 public static final int MINUTE /分 public static final int SECOND /秒 public static
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度山西省高校教师资格证之高等教育法规考试题库
- 国家自然基金简介(1)-资助研究项目属性(2)-资助研培训课件
- 2024年泥水工项目协议模板下载
- 2024年除雪作业协议细则
- 2024汽车购贷担保协议样本全文参阅
- 2024年办公室装修施工协议样本
- 2024年斗殴双方和解赔偿协议样式
- 中小学教师数据素养-江苏师范大学中国大学mooc课后章节答案期末考试题库2023年
- 岗位保密条款:2024劳动协议增补篇
- 2024年全职收银员劳动协议范本
- 第三单元名著导读《骆驼祥子》整本书阅读教学设计+2023-2024学年统编版语文七年级下册
- 2024年中级电工考前必刷必练题库500题(含真题、必会题)
- 《第二单元测试卷》(单元练习)-2024-2025学年六年级上册数学北师大版
- 2024年员工向公司借款合同标准版本(六篇)
- DB11T 527-2021 配电室安全管理规范
- 2024-2030年中国铁路电力电气化行业运营动态及市场规模发展预测研究报告
- 文物建筑和博物馆火灾风险指南及检查指引
- 河南省部分学校2024-2025学年高三上学期10月大联考物理试卷(无答案)
- 小学三年级数学口算 3位乘或除1位第1-10篇
- 介绍南昌八一广场的英语作文
- 【历史】七年级上册期中复习(1-15课)(复习课件) 2024-2025学年七年级历史上册(统编版2024)
评论
0/150
提交评论