第4章 接口.doc_第1页
第4章 接口.doc_第2页
第4章 接口.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章 接口内部类和包4-1 什么是接口?接口和抽象类有哪些相同之处和不同之处?【答】接口是一组常量和抽象方法的集合。在Java中,接口是一种引用数据类型,用关键字implements声明。接口与抽象类的区别为:相同点:1.两者都包含抽象方法,约定多个类共用方法的参数列表和返回值。2.两者都不能被实例化。3.两者都是引用数据类型,其变量可被赋值为子类或实现接口类的对象。不同点:1.抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。2.抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。3.抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限由public和缺省两种,接口中成员的访问权限均是public。4.抽象类中可以包含非抽象方法,也可以声明构造方法;接口中的方法必须全部是抽象方法,不能声明构造方法。5.抽象类中可以声明成员变量,子类可以对该成员变量赋值;接口中只能声明常量。4-2 为什么能够声明接口变量?接口变量能够获得什么样的值?【答】接口是引用数据类型可以声明接口变量。接口变量能够获得实现接口的类的对象,也称为接口对象。4-3 接口有哪些特点?为什么需要声明借口?接口是否具有继承性?接口中能否写构造方法?【答】接口特点:(1)接口及接口中成员的访问权限都是public(2)接口中的成员方法都是公有的、抽象的实例成员方法,即默认修饰符为public abstract。(3)接口中的所有抽象方法必须全部被实现接口的类覆盖。(4)接口中的成员变量都是常量(5)接口不能被实例化。接口中的方法都是抽象的,构造方法不是抽象的所有不能写构造方法(6)接口是引用数据类型。Java只支持单重继承,以“单重继承+接口”的方式代替多继承。接口可以继承一个已经存在的父接口。4-4 什么是单重继承?什么是多重继承?类的层次体系为什么需要多重继承?单重继承有什么缺点?既然有缺点,为什么Java仍然采用单重继承?Java怎样实现多重继承?【答】单重继承就是一个类只能有一个父类。多继承就是可以有多个父类。现实中的对象往往表现出多种特性,用单重继承无法客观描绘,因此需要多重继承。但是C+的多重继承过于复杂,因此Java用“单重继承+接口”代替了多重继承,以提高运行效率,增加安全性,降低复杂性。4-5 类与类之间存在哪几种关系?【答】类与类之间有继承关系,还存在嵌套关系。4-6 在什么情况下需要声明内部类?内部类有哪些特性?【答】Java不支持C+的结构(struct)类型,当实际中需要使用一个结构时,可以声明一个类;但当结构作为数组的元素类型时,或当一个类中需要使用结构时,可以将结构声明为内部类。内部类特性可参看课本P123。4-7 为什么是包?为什么需要包机制?Java有哪些包?各有什么功能?【答】从逻辑概念看,包是类的集合,一个包中包含多个类;从存储概念看,包是类的组织方式,一个包对应一个文件夹,一个文件夹中包含多个字节码文件;包与类的关系,就像文件夹与文件的关系一样。为解决字节码文件存放和类命名的问题,Java提供了包机制。Java的常用包及其作用可查看P130表4-1 。4-8 Java的API采用什么组织方式?怎样使用Java定义好的类?【答】Java语言的API按照功能划分成若干包,每个包都有许多公有的类和接口。如果需要使用已定义好的一个包中的类或接口,可以使用import语句声明。4-9 Java声明Object类的作用是什么?Object类中声明了哪些方法?Object类在Java类层次体系中的地位是怎样的?【答】Object是Java中所有类的父类或祖先类,它定义了一个Java对象所需要的基本操作和属性。定义的方法有:1.getClass()获得当前对象所在的类是什么、equals()比较两个对象是否相等、toString()将当前对象的信息用字符串描述、finalize()析构方法。4-10 Java为什么需要声明基本数据类型的包装类?基本数据类型的包装类有哪些?【答】为实现完全面向对象的特性,Java为每个基本数据类型都声明有对应的一个类。公有8个基本数据类型的包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean4-11 怎样将数值类型的数据转换成字符串?怎样将字符串转换成数值类型的数据?【答】Integer类的静态方法parseInt()和实例方法intValue()都可以将一个字符串转换成int值。Integer类的静态方法toBinaryString(int i)、toOctalString(int i)、Integer.toHexString(int i)可以将十进制i转化为二进制、八进制、十六进制、字符串。4-12 Java为什么要将Math类声明为最终类?Math类中有哪些常用方法?【答】Math类提供提供E、PI常量和一组固定数学函数。都是静态可以直接通过类名引用,不需要继承。常用方法有:(1)求绝对值abs(double a)(2)求最大值max(double a,double b)(3)求最小值min(double a,double b)(3)返回一个0.01.0之间的随机数random()4-13 对数值变量或对象进行比较操作,到底应该采用6个关系运算符还是调用equals()、compareTo()方法?是否每个对象都可以调用equals()和compareTo()方法?为什么?这两个方法在进行比较操作时有什么差别?它们在每个类中的含义都相同吗?【答】对数值、变量可以采用6个关系运算符,对象可以用后两者,但是并不是每个对象都可以调用这两个方法。具体用法及区别请看课本P133和P136.4-14 System类、Class类和Runtime类各有哪些功能?在之前的程序中已用到这些类的哪些常量或方法?【答】System类提供访问系统资源和标准输入/输出流的方法,之前用到了in和out常量。Class为类提供运行时信息,如名字、类型、以及父类等。Runtime类可直接访问运行时资源。4-15 怎样表示日期与时间数据?怎样引用java.util包的类?【答】Java以一个长整型表示一个日期,该长整型表示从格林尼治时间1970-1-1 00:00:00 开始至某时刻的累积毫秒数。4-16 泛型类有什么作用?在什么情况下需要使用泛型类?【答】泛型的本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论