接口、内部类和Java-API基础信息学院2014级

上传人:壹****1 文档编号:567922350 上传时间:2024-07-22 格式:PPT 页数:57 大小:314KB
返回 下载 相关 举报
接口、内部类和Java-API基础信息学院2014级_第1页
第1页 / 共57页
接口、内部类和Java-API基础信息学院2014级_第2页
第2页 / 共57页
接口、内部类和Java-API基础信息学院2014级_第3页
第3页 / 共57页
接口、内部类和Java-API基础信息学院2014级_第4页
第4页 / 共57页
接口、内部类和Java-API基础信息学院2014级_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《接口、内部类和Java-API基础信息学院2014级》由会员分享,可在线阅读,更多相关《接口、内部类和Java-API基础信息学院2014级(57页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 接口、内部类和接口、内部类和Java API基础基础内容和要求:内容和要求:1.理解接口的作用,理解接口和实现接口的类的理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口、一个类实现多个接口的关系,掌握声明接口、一个类实现多个接口的声明和使用方法。声明和使用方法。2.理解内嵌类型的概念,掌握声明内部类的方法。理解内嵌类型的概念,掌握声明内部类的方法。3.熟悉熟悉Java语言包和实用包中的常用类。语言包和实用包中的常用类。重点:重点:接口和实现接口的类;接口和实现接口的类;Java API 。1第第4章章 接口、内部类和接口、内部类和Java API基础基础4.1 接口接口4

2、.2 内部类和内部接口内部类和内部接口 4.3 java API基础(基础类库和工具类库)基础(基础类库和工具类库)4.4 泛型泛型24.1 接口与实现接口的类接口与实现接口的类接口定义:接口接口定义:接口( interface)是一组是一组抽象方法抽象方法、常量常量常量常量和和内嵌类型内嵌类型的集合。的集合。在在Java中,接口是一种中,接口是一种引用数据类型引用数据类型。 与抽象类相似,接口采用抽象的形式(抽象方法)与抽象类相似,接口采用抽象的形式(抽象方法)描述约定,接口只有被类实现后才有意义。描述约定,接口只有被类实现后才有意义。抽象方法的抽象方法的具体实现由实现接口的类具体实现由实现

3、接口的类完成,实现接完成,实现接口的非抽象类口的非抽象类必须重写接口必须重写接口中的中的所有抽象方法所有抽象方法。 3接口的作用接口的作用接口提供方法声明与方法实现相接口提供方法声明与方法实现相分离的机制分离的机制,使多,使多个类之间表现出个类之间表现出共同的行为能力共同的行为能力。接口中的一接口中的一 个抽象方法在实现接口的多个类中表个抽象方法在实现接口的多个类中表现出多态性现出多态性。 41. 声明接口声明接口public interface 接口接口 extends 父接口列表父接口列表 public static final 数据类型数据类型 成员变量成员变量=常量值常量值; publ

4、ic abstract 返回值类型返回值类型 成员方法成员方法(参数列表参数列表);public interface Area /可计算面积接口可计算面积接口public abstract double area();/计算面积计算面积 public interface Perimeter /课计算周长接口课计算周长接口 public abstract double perimeter();1. 声明接口声明接口5声明接口的说明接口中的成员变量都是常量,声明时必须赋值,默认修饰符为publicstaticfinal;不能声明实例成员变量。接口中的成员方法都是抽象的实例成员方法,默认修饰符为pu

5、blicabstract,不能声明为static。接口中不能包含构造方法。接口的访问控制权限是public或缺省。接口没有任何具体的实现,也就不能创建实例。2. 声明实现接口的类声明实现接口的类修饰符修饰符 class 类类 extends 父类父类 implements 接口列表接口列表例如,例如,public class Rectangle implements Areapublic class Ellipse implements Area, Perimeter 实现接口的实现接口的非抽象类非抽象类必须实现所有接口中的所有抽必须实现所有接口中的所有抽象方法,否则声明为抽象类象方法,否则声

6、明为抽象类7类实现接口说明:具体类必须实现(implements)接口的所有方法,且方法名字必须相同。如果一个具体类implements某个接口。却没有实现该接口的所有方法,在编译时将会产生语法错误,提示该类必须声明为abstract。一个类可以实现多个接口。8图图4.1 ClosedFigure类的继承关系类的继承关系publicabstractclassClosedFigureextendsFigureimplementsArea,PerimeterCloseFigure声明为了抽象类,所以可以不实现area和perimeter方法。9声明柱体类声明柱体类Cylinder,实现,实现Are

7、a和和Volume接口接口public class Cylinder extends Object implements Area, Volumepublic interface Volume /可计算体积接口可计算体积接口 public abstract double volume(); /抽象方法,计算体积抽象方法,计算体积3. 接口是多继承的接口是多继承的public interface Solid extends Area,Volume /立体接口,继承立体接口,继承Area和和Volume接口接口public class Globe extends Object implements

8、 Solid /球类,实现球类,实现Solid接口接口Java中类是单继承、接口是多继承。114. 接口是引用数据类型接口是引用数据类型ClosedFigure fig = new Ellipse(point,10,20); /父类对象父类对象fig引用椭圆子类实例引用椭圆子类实例Cylinder cylinder = new Cylinder(fig,10); /椭圆柱椭圆柱Area ar = cylinder; /ar引用实现引用实现Area接口的接口的Cylinder类的类的实例实例Volume vol = cylinder; /Volume接口对象接口对象vol引用实引用实现现Volu

9、me接口的接口的Cylinder类的实例类的实例ar.area() /运行时多态运行时多态vol.volume()ar只能访问area()方法vol只能访问volume()方法父类对象可以引用子类实例,但是只能访问父类声明的方法12图图4.4 接口声明的抽象方法在实现该接口的多个接口声明的抽象方法在实现该接口的多个类中表现出运行时多态性类中表现出运行时多态性 相同点:相同点:两者都包含抽象方法。两者都包含抽象方法。两者都不能被实例化。两者都不能被实例化。两者都是引用数据类型。两者都是引用数据类型。 5. 接口与抽象类比较接口与抽象类比较14抽象类约定抽象类约定多个子类之间共同使用的方法多个子类

10、之间共同使用的方法;接口;接口约定约定多个互不相关类之间共同使用多个互不相关类之间共同使用的方法。的方法。抽象类与子类之间采用单重继承机制;抽象类与子类之间采用单重继承机制;接口则实接口则实现了多重继承的功能。现了多重继承的功能。抽象类及其类中成员具有与抽象类及其类中成员具有与普通类一样的访问权普通类一样的访问权限限;接口的访问权限有接口的访问权限有public和默认两种,接口和默认两种,接口中成员的访问权限均是中成员的访问权限均是public。抽象类中可以包含非抽象方法抽象类中可以包含非抽象方法,也可以声明构造也可以声明构造方法方法;接口中的方法全部是抽象方法,不能声明接口中的方法全部是抽象

11、方法,不能声明构造方法。构造方法。抽象类中可以声明成员变量抽象类中可以声明成员变量,子类可以对该成员,子类可以对该成员变量赋值;变量赋值;接口中只能声明常量。接口中只能声明常量。接口与抽象类的不同点接口与抽象类的不同点156. 单继承和多继承单继承和多继承 1) 类的单继承的优点类的单继承的优点 搜索路径是线性的16接口的多继承不会影响线性搜索2) 接口多态性接口多态性实现更灵活图图4.5 多继承的多继承的“钻石继承钻石继承”类型会导致二义性类型会导致二义性 相对于多继承,相对于多继承,Java的单的单继承在父类方法时更简单继承在父类方法时更简单197. Java.lang中常用的接口中常用的

12、接口public interface Cloneable /可克隆接口可克隆接口public interface Comparable /可比较接口可比较接口public int compareTo(T o);Public interface Runnable /线程可运行接口线程可运行接口public abstract void run();public interface Serializable /可序列化接口可序列化接口其中Cloneable和Serializable接口称为标记接口,没有任何常量和方法20Cloneable 接口举例接口举例类实现类实现 Cloneable 接口,以指

13、示接口,以指示 Object.clone() 方法可以方法可以合法地对该类实例进行按字段复制。合法地对该类实例进行按字段复制。 如果在没有实现如果在没有实现 Cloneable 接口的实例上调用接口的实例上调用 Object 的的 clone 方法,则会导致抛出方法,则会导致抛出 CloneNotSupportedException 异常。异常。 按照惯例,实现此接口的类应该使用公共方法重写按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。(它是受保护的)。publicclassCloneDemoimplementsCloneablepublicStrin

14、gname; publicintid;publicMyDatebirthday;.publicCloneDemoclone()throwsCloneNotSupportedExceptionCloneDemocloned=(CloneDemo)super.clone();cloned.birthday=(MyDate)birthday.clone();returncloned;.4.2 内部类和内部接口内部类和内部接口 public class Pixel /像素类,外层类型,外部类像素类,外层类型,外部类 public static interface ColorConstant /颜色常量

15、接口,静态内部接口,类型嵌套颜色常量接口,静态内部接口,类型嵌套 public static class Color extends Object implements ColorConstant /颜色类,静态内部类颜色类,静态内部类内部类和内部接口:声明在其他类或接口内部的内嵌类型。内部类和内部接口:声明在其他类或接口内部的内嵌类型。类型嵌套:静态内嵌类型类型嵌套:静态内嵌类型 Pixel.Color color = new Pixel.Color(255,255,255); 对象嵌套:实例内嵌类型对象嵌套:实例内嵌类型221.内部类作为类型的特性内部类作为类型的特性内嵌类型不能与外层类型

16、同名。内部类中可以声明成员变量和成员方法。内部类可以继承父类或实现接口。可以声明内部类为抽象类,该抽象类必须被其他内部类继承;内部接口必须被其他内部类实现。232. 内部类作为成员的特性内部类作为成员的特性使用点运算符“.”引用内嵌类型:外层类型.内嵌类型Pixel.Color内嵌类型具有类中成员的4种访问控制权限。当内部类可被访问时,才能考虑内部类中成员的访问控制权限。内嵌类型与其外层类型彼此信任,能访问对方的所有成员。内部接口总是静态的。内部类可声明是静态的或实例的,静态内部类能够声明静态成员,但不能引用外部类的实例成员;实例内部类不能声明静态成员。在实例内部类中,使用以下格式引用或调用外

17、部类当前实例的成员变量或实例成员方法:外部类.this.成员变量/引用外部类当前实例的成员变量外部类.this.实例成员方法(参数列表)/调用外部类当前实例的成员方法244.3 Java API基础基础4.3.1 Java.lang包的基础类库包的基础类库4.3.2 Java.util包的工具类库包的工具类库254.3.1 java.lang包中的基础类库包中的基础类库类名类名功能功能Object类类Java类层次的根,其他类的祖先类层次的根,其他类的祖先Math提供一组数学函数和常数提供一组数学函数和常数Comparale接口接口约定对象比较大小的方法约定对象比较大小的方法基本数据类型包装类

18、基本数据类型包装类8个基本类型的包装类个基本类型的包装类String字符串类字符串类提供字符串的操作方法提供字符串的操作方法System和和Runtime类类系统和运行时类,提供访问系统和运行时环系统和运行时类,提供访问系统和运行时环境资源境资源Class类类提供类名、父类即类所在包的信息提供类名、父类即类所在包的信息Error、Excpetion处理异常和错误处理异常和错误Thread类和类和Runnable接口接口提供多线程管理、多线程操作类及接口提供多线程管理、多线程操作类及接口261. Object类类package java.lang;public class Object publ

19、ic Object() /构造方法构造方法 public final native Class getClass(); /返回当前对象所在的类返回当前对象所在的类 public boolean equals(Object obj) /比较当前对象与比较当前对象与obj是否相等是否相等 public String toString() /返回当前对象的信息字符串返回当前对象的信息字符串 protected void finalize() throws Throwable /析构方法析构方法272. Math数学类数学类public final class Math extends Object

20、public static final double E = 2.70452354; /常量常量 public static final double PI = 3.149323846; 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之间的随机数之间的随机数

21、 .283. Comparable可比较接口可比较接口public interface Comparable int compareTo(T o) /比较对象比较对象 其中,其中,是是Comparable接口的参数,表示一个接口的参数,表示一个类。类。 29MyDate类对象比较大小类对象比较大小 public class MyDate implements Comparable public int compareTo(MyDate d) /约定比较日期大小的规则,返回约定比较日期大小的规则,返回-1、0、1 if (this.year=d.year & this.month=d.month

22、 & this.day=d.day) return 0; return (this.yeard.year | this.year=d.year & this.monthd.month | this.year=d.year & this.month=d.month & this.dayd.day) ? 1 : -1; 30Comparable 接口举例接口举例public class MyDate implements Comparable /类声明类声明.public static void main(String args) MyDate dates=new MyDate(1995,12,5

23、),new MyDate(2003,2,18),new MyDate(1998,6,18); . Arrays.sort(dates); 4. 基本数据类型的包装类基本数据类型的包装类8个个Byte、Short、Integer、Long、Float、Double、Character、Boolean。 32基本数据类型的包装类基本数据类型的包装类8个个Byte、Short、Integer、Long、Float、Double、Character、Boolean。 public final class Integer extends Number implements Comparable publ

24、ic 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 /将字符串转换为整数,静态方法将

25、字符串转换为整数,静态方法 public boolean equals(Object obj) /覆盖覆盖Object类中方法类中方法 public String toString() /覆盖覆盖Object类中方法类中方法 public int compareTo(Integer anotherInteger) /比较两个对象的大小,返回两者之间的差值,实现比较两个对象的大小,返回两者之间的差值,实现Comparable接口中方法接口中方法335. String字符串类字符串类public final class String extends Object implements java.i

26、o.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

27、int compareTo(String anotherString) /比较字符串的大小,实现比较字符串的大小,实现Comparable接口方法接口方法 public int compareToIgnoreCase(String str) /比较字符串的大小,忽略字母大小写比较字符串的大小,忽略字母大小写346. StringBuffer字符串缓冲区类字符串缓冲区类 public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence public

28、 StringBuffer() /构造方法构造方法 public StringBuffer(String str) public append(char str) /覆盖覆盖Object类中方法类中方法 .String对象存储常量字符串,实例不能被修改,赋值过程会对象存储常量字符串,实例不能被修改,赋值过程会重新分配内存重新分配内存StringBuffer采用缓冲区存储可变长的字符串,可以改变采用缓冲区存储可变长的字符串,可以改变字符串对象中的指定字符串。避免在运算时频繁申请内存。字符串对象中的指定字符串。避免在运算时频繁申请内存。357. Class类操作类类操作类public final

29、class Class public String getName() /返回当前类名字符串返回当前类名字符串 public Class getSuperclass(); /返回当前类的父类返回当前类的父类 public Package getPackage() /返回当前类所在的包返回当前类所在的包 .this.getClass().getName()this.getClass().getSuperclass().getName()this.getClass().getPackage().getName() 36获取一个类的获取一个类的Class方式方式1.ClassName.class2.

30、类实例类实例.getClass()方法方法3.类加载器类加载器 Class.forName(“classname”)Class用法,?是通配符Classcla;与Classcl;前一个表示cla只能指向Integer这种类型,而后一个cl表示可以指向任意类型。cla=Integer.class可以,但cla=Double.class就不可以。但是cl=Integer.class可以,cl=Double.class也可以378. System系统类和系统类和Runtime运行时类运行时类public final class System extends Object public final s

31、tatic InputStream in = nullInputStream(); 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)

32、/结束当前运行的程序结束当前运行的程序 public static native long currentTimeMillis(); /获得当前日期和时间,毫秒数获得当前日期和时间,毫秒数 public static Properties getProperties() /获得系统全部属性获得系统全部属性 public static String getProperty(String key) /获得指定系统属性获得指定系统属性System类提供访问系统资源和标准输入/输出流的方法,之前用到了in和out常量。38Runtime运行时类运行时类public class Runtime exte

33、nds Object public static Runtime getRuntime() /返回与当前应用程序相联系的运行时环境返回与当前应用程序相联系的运行时环境 public long totalMemory() /返回系统内存空间总量返回系统内存空间总量 public long freeMemory() /返回系统内存剩余空间的大小返回系统内存剩余空间的大小 public Process exec(String command, String envp) /在指定环境的单独进程中执行指定的字符串命令。在指定环境的单独进程中执行指定的字符串命令。 .Runtime类可直接访问运行时资源3

34、9Runtime类举例类举例public class RuntimeDemo public static void main(String args) throws IOException /获取与当前应用程序相联系的运行时环境,在当前应用程序运行另外一个程序获取与当前应用程序相联系的运行时环境,在当前应用程序运行另外一个程序Runtime rt = Runtime.getRuntime();Process process = rt.exec(notepad.exe);System.out.println(总内存总内存 : + rt.totalMemory() + 空闲空闲内存内存: + rt

35、.freeMemory(); 启动了记事本程序,并在控制台输出:启动了记事本程序,并在控制台输出:总内存总内存 : 124780544 空闲内存空闲内存: 122179792404.4 java.util包中的工具类库包中的工具类库1 日期类日期类2 Comparator比较器接口比较器接口3 Arrays数组类数组类4 泛型泛型 411. 日期类日期类 -Datepublic class Date extends Object implements java.io.Serializable, Cloneable, Comparable public Date() /构造方法,获得系统当前日期

36、和时间的构造方法,获得系统当前日期和时间的Date对象对象 this(System.currentTimeMillis(); public Date(long date) /构造方法,以长整型值创建构造方法,以长整型值创建Date对象对象 public void setTime(long time) /设置时间对应的长整型值设置时间对应的长整型值 public long getTime() /返回对象中的时间值返回对象中的时间值 public boolean before(Date when) /判断是否在指定日期之前判断是否在指定日期之前 public boolean after(Date

37、when) /判断是否在指定日期之后判断是否在指定日期之后 public int compareTo(Date anotherDate) /比较两个日期比较两个日期由DateFormat控制日期输出格式42日期类日期类Calendarpublic abstract class Calendar extends Object implements Serializable, Cloneable, Comparable public static final int YEAR /年,常量年,常量 public static final int MONTH /月月 public static fin

38、al int DATE /日日 public static final int HOUR /时时 public static final int MINUTE /分分 public static final int SECOND /秒秒 public static final int MILLISECOND /百分秒百分秒 public static final int DAY_OF_WEEK /星期星期43Calendar类类public abstract class Calendar extends Object implements Serializable, Cloneable, Co

39、mparable public static Calendar getInstance() /创建实例创建实例 public int get(int field) /返回日期返回日期 public final Date getTime() /返回对象中的日期和时间返回对象中的日期和时间 public final void setTime(Date date) /设置对象的日期和时间设置对象的日期和时间 public final void set(int year, int month, int date) public final void set(int year, int month, i

40、nt date, int hour, int minute)例如,例如,Calendar now = Calendar.getInstance(); /获得实例获得实例int year =now.get(Calendar.YEAR); /获得对象中的年份值获得对象中的年份值【例例4.5】 月历。月历。442.Comparator比较器接口比较器接口 public interface Comparator public abstract boolean equals(Object obj); /比较两个比较器对象是否相等比较两个比较器对象是否相等 public abstract int comp

41、are(T cobj1, T cobj2); /指定比较两个对象大小的规则指定比较两个对象大小的规则【例例4.4】Person类的多种比较规则。类的多种比较规则。(1) 约定多种比较对象大小的规则约定多种比较对象大小的规则(2) 约定多种比较对象相等的规则约定多种比较对象相等的规则45Comparator比较器接口举例比较器接口举例 与与comparable差别:差别: Comprator可以实现多个比较接口,而可以实现多个比较接口,而comparable接口只能按照一种方式比较。接口只能按照一种方式比较。class TimeComparator implements Comparator实现

42、按时间排序实现按时间排序class FromAddrComparator implements Comparator实现按发件地址排序实现按发件地址排序class ToAddrComparator implements Comparator实现实现按收件按收件地址地址排序排序class NumComparator implements Comparator实现实现按单号排序按单号排序3. Arrays数组类数组类比较两个数组是否相等比较两个数组是否相等public static boolean equals(int a, int b) public static boolean equals(

43、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) 474 泛型泛型1)泛型声明)泛型声明 修饰符修饰符 c

44、lass 类类 extends 父类父类 implements 接口列表接口列表public interface 接口接口 extends 父接口列表父接口列表public static 返回值返回值类型类型 方法方法(参数列表参数列表) throws 异常类列表异常类列表 48泛型举例泛型举例public class GenericsDemo public static void main(String args) GStudent iStud = new GStudent(10, 20, 30);GStudent sStud = new GStudent(10, 20, 30);Syste

45、m.out.println(iStud); System.out.println(sStud); class GStudent T studentName; T studentNo; T seatNumber;public GStudent(T studentName, T studentNo, T seatNumber) this.studentName = studentName;this.studentNo = studentNo;this.seatNumber = seatNumber; public String toString() return studentName= + st

46、udentName + , studentNo= + studentNo+ , seatNumber= + seatNumber + ;2)泛型的必要性)泛型的必要性 Comparable Comparable scom=abc; /String实现实现ComparableComparable pcom = new Person(李明李明,null,男男,); /Person实现实现Comparable50Comparable与与ComparablePerson pvalue = new Person();sort(pvalue); /Person实现实现omparableStudent sv

47、alue = new Student(), ;sort(svalue); /编译错,因为编译错,因为Student继承继承Person类,实类,实现现Comparable接口,接口, /没有实现没有实现Comparable接口,不满足接口,不满足T extends Comparable语法语法public class Student implements Comparable /提供提供compareTo(Student)方法方法513)泛型的继承性及通配符)泛型的继承性及通配符 Comparator是所有是所有Comparator的父类型,的父类型,“?”称为通配符,表示通配类型,代表能够匹

48、配任何称为通配符,表示通配类型,代表能够匹配任何类型。类型。“?”还有以下两种限定通配符用法:还有以下两种限定通配符用法:? extends T /?表示表示T及其任意一种子类型,及其任意一种子类型,T称为称为?的上界的上界? super T /?表示表示T及其任意一种父类型,及其任意一种父类型,T称为称为?的下界的下界public static T extends Comparable void sort(T value)public static void sort(T value, Comparator c) 52小结小结1.理解接口的作用,理解接口和实现接口的类的理解接口的作用,理解接

49、口和实现接口的类的关系,掌握声明接口、一个类实现多个接口的关系,掌握声明接口、一个类实现多个接口的声明和使用方法。声明和使用方法。2.理解内嵌类型的概念,掌握声明内部类的方法。理解内嵌类型的概念,掌握声明内部类的方法。3.熟悉熟悉Java语言包和实用包中的常用类。语言包和实用包中的常用类。4.理解泛型的作用和用法理解泛型的作用和用法重点:重点:接口和实现接口的类;接口和实现接口的类;Java API 。531.什么是接口?接口的作用是什么?习习 题题【答】接口是一组抽象方法、常量和内嵌类型的集合。接口提供方法声明与方法实现相分离的机制,使实现接口的多个类表现出共同的行为能力。2.接口能否被实例

50、化?为什么?接口中能否写构造方法?为什么?【答】接口不能被实例化,因为接口是声明的是抽象方法,没有方法体。接口中不能写构造方法,因为构造方法不能声明为抽象方法。3.接口对象引用谁的实例?【答】接口是引用类型,接口对象引用实现该接口的类的实例。544.什么是单重继承?什么是多重继承?类的层次体系为什么需要多重继承?单重继承有什么缺点?既然有缺点,为什么Java仍然采用单重继承?Java怎样实现多重继承?【答】单重继承就是一个类只能有一个父类。多继承就是可以有多个父类。现实中的对象往往表现出多种特性,用单重继承无法客观描绘,因此需要多重继承。但是C+的多重继承过于复杂,因此Java用“单重继承+接

51、口”代替了多重继承,以提高运行效率,增加安全性,降低复杂性。5.怎样将数值类型的数据转换成字符串?怎样将字符串转换成数值类型的数据?【答】Integer类的静态方法parseInt()和实例方法intValue()都可以将一个字符串转换成int值。Integer类的静态方法toBinaryString(inti)、toOctalString(inti)、Integer.toHexString(inti)可以将十进制i转化为二进制、八进制、十六进制、字符串。6.System类、Class类和Runtime类各有哪些功能?在之前的程序中已用到这些类的哪些常量或方法?【答】System类提供访问系统

52、资源和标准输入/输出流的方法,之前用到了in和out常量。Class为类提供运行时信息,如名字、类型、以及父类等。Runtime类可直接访问运行时资源。557.指出以下声明中的错误。protectedinterfaceAreapublicstaticintleft;publicstaticfinalintRIGHT;publicArea()privatedoublearea();publicstaticabstractdoubleperimeter();Areaa=newArea();/编译错,不能声明接口为保护的/编译错,接口不能声明成员变量/编译错,接口声明的最终变量必须赋值/编译错,接口

53、不能声明构造方法/编译错,不能声明私有方法/编译错,接口不能声明静态方法/编译错,接口不能被实例化8.Java为什么需要声明基本数据类型的包装类?基本数据类型的包装类有哪些?【答】Java为了实现完全面向对象。泛类T的实际参数必须是对象。8个基本数据类型对应的类为:Byte、Short、Integer、Long、Float、Double、Character、Boolean。56abstract class SuperAbstract void a() System.out.println(a inSuperAbstract); abstract void b(); abstract int c

54、(int i);interface IfSuper void x();abstract class SubAbstract extends SuperAbstract implements IfSuper public void b() System.out.println(b in subAbstract); abstract String f();public class InheritAbstract extends SubAbstract public void x() System.out.println(x in InheritAbstract); public int c(int

55、 i) System.out.println(c in InheritAbstract i ); return i;public String f() return f in InheritAbstract;public static void main(String args) InheritAbstract instance = new InheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100); System.out.println(instance.f(); IfSuper ifs = instance; ifs.x(); 57

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号