收藏 分享(赏)

河南理工大学JAVA课后习题答案.doc

上传人:精品资料 文档编号:10681245 上传时间:2019-12-23 格式:DOC 页数:14 大小:82.50KB
下载 相关 举报
河南理工大学JAVA课后习题答案.doc_第1页
第1页 / 共14页
河南理工大学JAVA课后习题答案.doc_第2页
第2页 / 共14页
河南理工大学JAVA课后习题答案.doc_第3页
第3页 / 共14页
河南理工大学JAVA课后习题答案.doc_第4页
第4页 / 共14页
河南理工大学JAVA课后习题答案.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、第 1 章(一)填空题(1)C+是由 C 语言发展起来的,而 Java 是由 Oak 软件发展起来的。(2)随着 Java 语言的不断发展,Sun 公司将 Java 细分为三个版本,三个版本的简称为 J2SE 、 J2EE 、 J2ME 。(3)Java 本身的编译器是由 语言编写的,运行系统的 JVM(Java 虚拟机)则是用 语言实现的。(4)多线程是 Java 程序的 ,它能同步共享数据,处理不同的事件。(5)Java 虚拟机执行过程的三个特点是: 、 、 。(6)Java 的 机制使得程序员从手工管理内存中解脱出来。(二)选择题(1)线程是 Java 程序的( C )机制。A.检查 B

2、.解释执行 C.并行 C.并发(2)下面对于 Java 和 C+的区别,描述不正确的是( C ) 。A.Java 没有指针而 C+有 B.Java 具有跨平台性而 C+没有C.Java 支持多继承而 C+只支持单继承 D.Java 提供内存自动管理而 C+不能(3)Java 作为编程语言, (D )特点是 Java 不具有的。A.利用了面向对象的技术基础 B.可移植性C.独立于硬件结构 D.多重继承(4)Java 和 C+都是面向对象的语言,他们所具有的相同的特点是( 下面都不对 ) 。A.运算符重载 B.多重继承性 C.与硬件无关 D.指针操作(5)Java 语言具有许多优势和特点,以下(

3、D )特点能保证软件的可移植性。A.健壮性 B.安全性 C.跨平台 D.动态性(6)在下列说法中错误的是( A ) 。A.多行注释语句是以/开始 B.Java 语言是区分大小写的C.Java 语言是以类为程序的基本单位的 D.Java 程序有执行速度快的特点(7)下面( B )不是 Java 虚拟机(JVM )执行过程的特点。A.多线程 B.及时执行 C.动态连接 D.异常处理(8)下面( D )不是 Java 语言的特点。A.分布式计算 B.健壮性 C.跨平台 D.静态性(9)下面不属于 Java 语言特点的是( C ) 。A.动态性 B.解释执行 C.面向过程 D.多线程(10)与 Jav

4、a 语言安全性有关的一项是( B ) 。A.并发执行 B.访问权限检查 C.封装性 D.异常处理(11)下面不属于 Java 语言实现机制的是( D ) 。A.并行机制 B.Java 虚拟机 C.垃圾回收机制 D.代码安全检测(12)下列属于 Java 语言垃圾回收机制的一项是( A ) 。A.内存跟踪 B.异常处理 C.代码安全检测 D.健壮性第 2 章(一)填空题(1)Java 编译器将用 Java 语言编写的源程序编写成 。(2)Java 程序基本上可以分成两类,即 和 。(3)Java 程序能在 WWW 浏览器上运行的是 程序。(4)Java 源程序文件和字节码文件的扩展名分别为 和

5、。(5)Java 源程序的运行,至少要经过 和 两个阶段。(6)与结构化编程语言不同,Java 是一种完全 且与平台 无关 的语言。(二)选择题(1)下列( )注释风格在 Java 是错误的。A./*comment*/ B./*comment*/ C./*comment D./comment(2)Java 是一种( )语言。A.编译型 B.解释型 C.混合型 D.以上都不是(3)Java 作为编程语言, ( )是最基本的元素。A.对象 B.方法 C.包 D.接口(4)JDK 中,用于编译程序的工具是( ) 。A.Javac B.Javap C.Java D.Javadoc(5)下列描述中,不正

6、确的是( ) 。A.一个 Java 源文件不允许有多个公共类 B.Java 通过接口支持多重继承C.Java 不支持多线程 D.Java 程序主要分为 Application 和 Applet 两类(6)在创建 Applet 的应用程序时,用户应考虑的问题是( ) 。A.窗口如何创建 B.绘制的图形在窗口中的位置 C.程序的框架 D.事件处理(7)下列选项中,不属于 Java 核心包的一项是( ) 。A.Javax.swing B.Java.io C.Java.util D.Java.lang(8)JDK 安装完成后,主要的命令,如 Javac、Java 等,都存放在根目录的( )文件夹下。A

7、.bin B.jre C.doc D.include第 3 章(一)填空题(1)执行下列程序,输出的结果为 。Public class Teat1Public static void main(String args)Int a=16Int b=2Doa/=b;while(a3)System.out.println(a); (2)执行下列程序,输出的结果为 。Public class Test2Public static void main(String args)Int x=5;Double y=22.5;String s=”abc”;S+=x+y;System.out.println(c)

8、;(3)在 switch 分支语句中的常量类型必须和表达式的类型 ,并且每个子句的常量值必须 互不相同 。(4)在使用分支语句编写程序的时候,表达式只能返回 int、byte 、 、char 类型的值。(5)在分支语句中 break 语句用于跳出 语句。(6)条件语句控制程序的流程是通过判断 来进行的。(7)分支语句包括 和 。(8)循环语句的控制机制是 。(9)循环语句包括四部分: 、 、 和 。(10)循环语句的三种循环结构: 、 、 、 。(11)在 Java 程序中,do-while 循环语句块至少被执行 次。(12)在 for 循环语句的迭代部分可以使用 进行多个操作。(二)选择题(

9、1)下面选项不是表达式语句的是( ) 。A.c+; B.a=b+c; C.a+=b; D.System.out.println(“A”)(2)下列说法不正确的是( ) 。A.表达式可以是其他表达式的操作数 B.单个常量或变量可以作为表达式C.表达式和表达式语句是一样的 D.表达式的类型可以和操作数的类型不一样(3)下面选项符合 Java 语言语法的语句是( ) 。A.int a=6; inst b=7; B.int a=4, int b=2;C.double a=b*/.8; D.int a=9,b=1,c=8;a=b+c=a-b+c;(4)执行下列程序,输出结果为( ) 。Public cl

10、ass BPublic static void main(String args)Int x=5;Double y=10.5f;Float z=(float)(x*y);System.out.println(z);A.50.0 B.52.0 C.50.5 D.52.5(5)下列程序输出的结果为( ) 。Public class APublic static void main(String args)Int a=3.b=4,c=5,d=6,e=7;If(ad) System.out.println(“who”);Else System.out.println(“why”);A.why B.wh

11、o why C.who D.没结果(6)下面选项不属于 Java 的流程控制结构的是( ) 。A.分支语句 B.循环语句 C.赋值语句(表达式结构) D.递归(7)下面不是合法的条件语句的一项是( ) 。A.if(ab) B.if(a=1) C.if(abWhile(ab)While(b!=c)sum+=b;b+;b=4;a+;System.out.println(sum);A.23 B.24 C.25 D.26(9)以下说法正确的是( ) 。Int a=10;Int t=0;do t=a+; while(t=10);A.一次都不执行 B.执行一次 C.执行两次 D.无限次执行(10)下面语句

12、中不是循环语句的是( ) 。A.for 语句 B.while 语句 C.switch 语句 D.do-while 语句第 4 章(一)判断题(1)所谓对象,就是一组类的集合。 ( )(2)方法的声明和方法调用的形式一样。 ( )(3)类是对一组具有相同属性、表现相同行为的对象的描述。 ( )(4)类成员只有三种访问控制级别:公有(public) 、受保护(protected)和私有(private) 。(5)Java 语言中对象传递的是引用而不是值。 ( )(6)所谓非静态的成员变量是指每一次创建对象都会分配一个存储空间来储存这个变量,每一个对象都拥有这个变量的存储空间,这个变量是属于类的,是

13、类的变量。 ( )(二)填空题(1)面向对象的语言将客观世界都看成由各种对象所组成。具有共同特征和行为的对象组成类,类是变量和 的集合。(2)在面向对象方法中,类的实例被称为 。(3)在 Java 中,对象使用应遵循的原则是 。(4)在 Java 中,类描述的是具有相同属性的 。(5)在 Java 程序里,对象是类的一个 。(6)在 Java 程序结构里,最基本的概念是类和 。(7)引用 static 类型的方法时,可以使用 做前缀,也可以使用 做前缀。(8)类中的 方法是一个特殊的方法,其名称与类名相同。(9)一个类主要包含两个成员要素: 和 。(10)静态数据成员既可以通过 来访问,也可以

14、通过 来访问。(11)Java 是面向对象的语言,对象是客观事物的 ,对象与之是一一对应的。(12)定义一个类包括定义类头和定义 两个部分。(13)Java 语言以 为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。(14)把对象实例化可以生成多个对象,使用 运算符为对象分配内存空间。(15)在 Java 中有一种叫做 特殊方法,在程序中用它来对类成员进行初始化。(三)选择题(1)下面关于类变量和实例变量的叙述中描述错误的是( ) 。A实例变量是类的成员变量B.类变量第一次用到时被初始化,以后创建其他对象时就不再进行初始化C.实例变量在每次创建对象时都被初始化D.实例变量是用

15、 statiic 修饰的成员变量(2)下面( )修饰符可以使一个类中的成员变量能被外部类调用。A.public B.protected C.private D.没有修饰符(3)定义类中可以用来修饰类名的修饰符是( ) 。A.private B.abstract C.native D.protected(4)定义类头时,不可以放到类名前面的关键字是( ) 。A.public B.abstract C.final D.static(5)关于用关键字 private 修饰的成员变量,下列说法正确的是( ) 。A.可以被其他包的类访问 B.只能被同一个包中的其他类访问C.只能被该类自身所访问或修改 D

16、.可以被其他包中的该类的子类访问(6)下面关于类的说法中,错误的是( ) 。A.类是经过抽象的共有属性的集合 B.类是 Java 程序的核心和本质C.类是对象的模板,二类对象则是类的实例化结果D.在面向对象的编程语言中,类不是一个独立的程序单位(7)下面有关变量调用的语句正确的是( ) 。Public class NumberInt a=2;Float b=12;Static int c=13;Public static void main(string args)Number one=new Number();A.one.a B.Number.a C.number.a D.Number.on

17、e(8)设 Test 为已定义的类,下面声明类 Test 对象 a 的语句正确的是( ) 。A.Test a=Test(); B.public Test a; C.Test a=new Test(); D.public Test a=new Test();(9)下面( )不是对象的特征。A.对象的行为 B.对象的状态 C.对象的局部变量 D.对象的标识符(10)定义抽象类时所用到的关键字是( ) 。A.final B.public C.abstract D.protected(11)定义一个公有 double 型符号常量 PI,下面的语句中正确的是( ) 。A.public final dou

18、ble PI; B.public final static double PI=3.14159;C.public final static double PI; D.public static double PI=3.14159;(12)有一个类 B,下面为其构造方法的声明,正确的是( ) 。 A.void B(int x) B.B(int x) C.void b(int x) D.b(int x)(13)为 B 类定义一个无返回值的方法 f,使得使用类名就可以访问该方法,该方法头的形式为( ) 。A.abstract void f() B.public void f() C.final vo

19、id f() D.static void f()第 6 章(一)判断题(1)抽象类不能实例化。 ( )(2)一个类中,只能拥有一个构造方法。 ( )(3)内部类都是非静态的。 ( )(4)接口中的所有方法都没有被实现。 ( )(5)实现一个接口,则在类中一定要实现接口中的所有方法。 ( )(6)在 Java 程序中,通过类的定义只能实现单一继承。 ( )(7)语句“import java.applet.Applet;”中最后的 Applet 代表的是类(class) 。 ( )(二)填空题(1)抽象方法只能存在于抽象类中,抽象方法用关键字 来修饰。(2)Java 语言中 是所有类的根。(3)n

20、ew 是 对象的操作符。(4)我们在 Java 程序中,把关键字 加到方法名称的前面,来实现子类调用父类的方法。(5)在 Java 程序里,同一类中重载的多个方法具有相同的方法名和 的参数列表,重载的方法可以有不同的返回值类型。(6)如果一个类中定义了几个名为 method 的方法,这些方法的参数都是整数,则这些方法的 必须是不同的,这种现象称为方法的重载。(7)Java 程序引入接口的概念,是为了弥补只允许类的 的缺憾。(8)Java 语言通过接口支持 继承,使类继承具有更灵活的扩展性。(9)接口是一种只含有抽象方法或 的特殊抽象类。(10)abstract 方法 与 final 并列修饰同

21、一个类。(11)每个 applet 程序必须有一个类是 类的子类。(12)在 Java 程序里,类之间实现共享属性的机制称为 。(13)在 Java 程序里,在一个类内部嵌套定义的类称为 。(14)一个类可以从它的父类中继承所有的属性和方法。采用这种方法可以提高软件的 。(15)接口是包含常量和抽象方法的一个特殊的 。(16)在运行时,由 Java 解释器自动引入,而不用 import 语句引入的包是 。(17)一个子类一般比其基类封装的功能要 。(18)标记成 的类的成员不能由该类的方法访问。(19)如果一个类包含一个或多个 abstract 方法,它就是一个 类。(20)接口中的数据成员是

22、 ,接口中没有什么 方法,所有成员方法都是方法。问答题1JDK 安装完成后,如何设置环境变量?2 什么是类?什么是对象?3线程的生命周期有哪几部分组成?各自的功能是什么?4简述 Java 应用程序与 Applet 小程序在开发过程中的区别。5用例子说明 Java 中基于 Socket 的 C/S 模式的服务器端的编程模式。 (只要求写出必要的语句,其他语句用省略号表示)6Java 实现多线程的方法有哪些?7. 常用的 Java 开发平台有哪些?8如何定义方法?方法有哪些类型?9什么是线程和进程?两者的区别是什么?程序设计1 用循环结构编程实现显示输出下面由数字构成的图案。9 8 7 6 5 4

23、 3 2 18 7 6 5 4 3 2 17 6 5 4 3 2 16 5 4 3 2 15 4 3 2 14 3 2 13 2 12 112 定义一个实现常用数学运算的类 MyMath,类中提供 max()、min()、sum() 与average()四个静态方法,每个方法带有三个整形参数,分别实现对三个整数求取最大值、最小值、和值及平均值的运算。在主类中对任意输入的三个整数,调用 MyMath 类的四种静态方法,求取结果并输出。3. 创建一个 Frame 类型的窗口,在窗口中放置必要的标签、文本、列表框、单选按钮及复选框等组件,用来显示一名学生的个人基本信息。4 求水仙花数:水仙花数是这样

24、的一个三位正整数,此数各数字的立方之和恰好等于该数之值。例如 153 就是一个水仙花数:153=1 3+53+33。编程找出所有这样的水仙花数并输出到屏幕。5编写一个 Application 程序,程序中包括计算机类 Computer,生成几个 Computer 类对象并输出相关信息。Computer 类具有品牌、产地、CPU 类型、内存容量、硬盘大小、是否带有刻录光驱、购买日期、购买地点、价格等属性。Computer 类包括以下几类方法:两个构造方法;dispMessages()方法,该方法输出计算机对象的一些属性信息。6创建一个 Frame 类型的窗口,采用 GridLayout 布局,依

25、照 Windows 的简单计算器的样式,在窗口中创建一个计算器的界面。7杨辉三角是中国古代著名的数学问题,其前几行的内容如下图所示:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1通过观察,不难发现,杨辉三角每一行中左右边界元素值均为 1,而非边界元素的值等于其上一行对应位置元素值与上一行对应位置左邻元素值之和。编程实现对任意输入的正整数 n 值(1n10) ,按上面的格式输出杨辉三角前 n 行的内容。8定义 student 类,其中包括四个私有变量(name、age、sex 、score) 、一个构造方法和show()方法。各成员的含义如下。变量 name 为字符

26、串类型 String,用于存储学生的姓名。变量 age 为 int 类型,用于存储学生的年龄。变量 sex 为 boolean 类型,用于存储学生的性别,男生为 false,女生为 true。变量 score 为 double 类型,用于存储学生的成绩。构造方法包括四个参数,用于为变量(name、age、sex 和 score)赋值。Show()方法无参数,用于输出变量(name、age、sex 和 score)的值。第一部分 Java 的类1. 请解释 Java 语言的跨平台特性。参考答案:Java 的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用 Java

27、 语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于 Java 虚拟机(JVM) ,JVM 解释器在运行 Java 应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。2.请列举 JAVA 语言的主要特点参考答案:JAVA 语言有很多特点,主要包括跨平台性:一个应用可以不经过修改直接运行到不同的平台上。面向对象:JAVA 语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。解释执行 JAVA应用时,JVM 中的解释器将解释类文件

28、,生成符合当前平台的字节码。自动回收:JAVA应用中的垃圾回收是自动进行的,JVM 中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。3.请说明一个 JAVA 类中主要包含哪几个元素?并说明每种元素的作用。参考答案:JAVA 类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。4、请说明构造方法的作用和特征参考答案:构造方法的作用是用来创建对象,使用 ne

29、w 关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如 static、final、abstract 等修饰符都可以修饰构造方法。5、什么事方法重载(overload)?参考答案:方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。6、请列举 Java 语言中的权限访问修饰符,并说明每种权限的含义。参考答案:Java 语言中有四种权限访问修饰符,即 public、protected、同包以及priva

30、te,public 表示公共权限,即任何包中都可以访问:protected 表示受保护权限,即同包中可以访问,同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private 是私有权限,表示只能在本类中访问。7、请列举 Java 语言中的八种基本数据类型,并说明每种数据类型的含义及长度。参考答案:Java 语言的八种基本数据类型有:byte 字节型,8 位长度:short短整型,16 位长度,int 整型,32 位长度:long 长整型,64 位长度:float 单精度浮点型。32 位长度:double 双精度浮点型,64 位长度:c

31、har 字符型,16 位长度:boolean 型,表示逻辑值,有 true 和 false 两个值,分别表示真和假8.什么叫引用类型,引用类型和基本数据类型有什么区别?参考答案:Java 语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用 new 调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。9.对于 String 对象,可以使用“=”赋值,也可以使用 new 关键字赋值,两种方式有什么

32、区别?参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用 new 进行赋值,则每次都创建一个新的字符串。10.String 类是一个“不可变类” ,请解释“不可变类”的含义。参考答案:所谓的不可变类,就是当字符串初始化后,就不能够被改变。11.String 类和 StringBuffer 类有什么区别?参考答案:String 类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer 是可变字符串类,类似 String 的缓冲区,可以修改字符串的值。12StringBuffer 和 StringBuilder 类有什么区别?参考答案

33、:StringBuffer 是线程安全的字符串缓冲,而 StringBuilder 不是线程安全的。13.包装器类型包括哪些类,有什么作用?参考答案:包装类器包括 Byte、Short、Integer、Long、Float 、Double、Character 、Boolean 等类,主要用来对 byte、short 、integer、long 、float 、double、character、boolean 这八种基本数据类型进行包装,使其称为引用类型。14. 请说明 Java 语言中的值传递规则。参考答案:基本数据类型传递的是值,引用类型传递的是引用,即虚地址。15.使用 static 修饰

34、属性或方法后,属性和方法有什么特征?参考答案:static 修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有共享,也可以说是 static 成员不依赖某个对象,在类加载时就被初始化。Static 修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。16.使用 final 修饰属性后,属性有什么特征?参考答案:fianl 修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。17.请说明操作符=的作用。参考答案:=可以用来比较基本类型或者引用类型。比较基本类型时,=用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。18 请说明Public void se

35、tB(B b)This.b=b;2请说明 Java 语言中数组的基本概念,数组的作用,以及数组的声明创建方式。参考答案:数组时相同元素的集合,作为数据容器使用。声明创建一个 int 型数组,如下所示:intx=new int3;其中 3 是数组的长度,该数组能够存储 3 个 int 型变量。3.使用代码,创建一个长度为 5 的 String 型数组,并使用增强 for 循环迭代数组打印出数组中的元素。参考答案:String sArray = new String5;For(String s:sArray)System.out.println(s);4.说明 Arrays 类的作用。参考答案:A

36、rrays 类是 java.util 包中的一个类,类中所有的方法都是 static 方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如 sort 方法可以对数组元素进行排序5.请使用简单代码展示 A 类依赖 B 类的含义。解析:对于程序员来说,了解类和类之间的关系非常必要。依赖关系指的是一种瞬间的关系。如果A 依赖 B,一般指的是 A 类的某个行为,需要 B 类对象作为参数。参考答案:Class APublic void f(B b)6.请说明依赖关系和关联关系的区别。解析:关联关系和依赖关系是非常常见的两种关系,二者的区别也很明显,程序员了解二者的区别能够更深入的理解面向对象的思

37、想。参考答案:依赖关系是一种瞬时关系,A 依赖 B,指的是 A 的某个行为的参数是 B 的类型,也就是说,A 要想实现这个行为,必须依赖 B 的实例,A 关联 B,是一种长久的关系。关联关系的是 B 作为 A的属性存在,只要实例化一个 A 的对象,就会为这个 A 的对象实例化一个 B 的对象,作为它的属性使用,可以在 A 中任何需要使用 B 的地方使用 B。7.继承有什么作用,Java 语言中的继承有什么特点?解析:继承是面向对象语言的一大特征,主要作用是重复使用,子类通过继承父类,能够重复使用父类的属性和方法。指的注意的是,有两个策略都可使实现重复使用,一个是关联,一个是继承,实际编程中,关

38、联用的更多。因为子类继承父类后,相当于父类中的细节将暴露给子类。初级程序员一定不要随意使用继承,避免滥用继承。参考答案:继承主要为了能够重复使用父类中的成员。Java 语言中的继承是单继承,也就是说一个类最多只能继承一个父类。8、什么是方法覆盖(override)?并说明方法覆盖与方法重载(overioad )的区别。解析:方法覆盖是一个非常重要的概念,是多态性的一个体现。方法覆盖发生再去爱继承关系中,当子类需要修改从父类继承到某个方法的方法体时,就可以声明一个父类同名同参数同返回值的方法,这样就对父类中的那个方法进行了覆盖,子类对象调用该方法时将自动绑定到子类中的方法。中很多类中都进行了方法

39、覆盖,如 String 类中的toString 方法,就覆盖了父类 Object 中的 toString 方法。参考答案:覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。9、请说明什么是抽象类?抽象类有什么作用?解析:初级程序员往往不需要自己创建抽象类,但是必须了解抽象类的概念,并且会使用抽象类。抽象类往往是设计阶段的概念,用来定义多个子类的模板,一些具体的实现可以在子类中进行。初级程序员往往需要会创建子

40、类继承抽象类,实现抽象类中的方法。在API 中,抽象类比比皆是。参考答案:抽象类是不能实例化的类,使用 abstract 修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。10、请说明抽象方法的含义,并说明抽象类与抽象方法的关系。解析:抽象方法都是在抽象类中定义的,是用来定义子类 what to do 的策略,而具体的how to do 都在子类中实现。参考答案:抽象方法是没有办法体的方法,使用 abstract 修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。11、super 关键字的两种用法。解析:使用一些 IDE 生成代码时,常常会在构造方法中见到 super

41、 这个关键字。顾名思义,super 是和父类有关的一个关键字,熟悉 super 的用法对熟练掌握继承很有必要。参考答案:如 super():表示调用父类中的每一参考的构造方法:又如 super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的 f()方法。12、final 类与 final 方法有什么作用?解析:final 修饰符是一个用途非常广泛的修饰符,可以修饰类,方法,以及属性。参考答案:final 类是不能够被继承的类,称为终极类,如 String 类就是 final 类,不能有子类。final 修饰方法

42、后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。13.什么是多态函数?多态函数有什么用?解析:多态性是面向对象语言的的一大特征,重载,覆盖,多态参数是多态性的一种表现形式。多态参数处处可见,例如某方法 f(Object o),这个方法的参数类型是 Object,使用该方法时,只要传递给 f 的单数类型是 Object 即可。也就是说,Object 类的任意参数可以传递给 f 方法。这就是多态参数。意思是对外形式都一样,都是 Object,具体实现可以是这个类型的任意子类,这就使得该方法比较灵活,Object类即使有了新的子类,却不需要修改,就能直接作用到那个子类。了解多态参数的含义和使

43、用,对于 Java的使用特别关键。参考答案:多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%的子类方法不需要任何修改,就能接受子类类型进行处理。14.Object 类有什么特点?解析:Object 类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个 Java 类,不管是 API 中定义的,还是自定义的类,都直接或间接的继承了 Object 类。所以,如果有一个方法f(Object o),那么可以传递给这个方法任意一个类的对象,包括% 。因为所有对象都可以说是 Object 类型。参考答案:Ob

44、ject 类是多有类的直接或间接的父类。15.Object 类中的 toString 方法有什么用?解析:Object 类是所有类的父类,所以 Object 类中的方法是所有类都默认具备的。类中的 toString 方法可以将任意一个对象作为字符串返回, API 中很多类已经覆盖了这个方法,将其返回值的格式进行了自定义,如 String 类中的方法已经覆盖为返回字符串的字符序列。toString 方法在很多场合被自动调用,例如打印一个对象时,就自动调用该对象的 toString 方法。参考答案:toString 方法可以把对象作为字符串返回。16.Object 类中的 equals 方法和 h

45、ashCode 方法。解析:在 Object 类中,equals 方法比较对象的引用值,也就是只有物理上是同一对象的两个引用,在使用 equals 方法返回 true。hashCode 方法返回一个对象的内在地址的十六进制值。由于 Object 类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作 Set,Map 对象时集合元素类的 equals 方法和 hashCode 方法非常必要。参考答案:Oject 类中的 equals 方法用来比较两个引用值,hashCode 用来返回引用的内地址的十六进制数值。在 Set 以及 Map 集合中,判断两个元素是否重复时,往往需

46、要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在 x 和 y 两个对象,调用 x.equals(y)返回 true 时,那么调用 hashCode方法的返回值也该相同;如果 x.equals(y)返回 false 时,那么调用 hashCode 方法返回的值可能相同,也可能不同。17.接口有什么特点,与抽象类有什么区别?解析:接口的概念是一个设计层面的概念,初级程序员往往不会自己定义接口,但是会使用接口,理解接口的概念非常必要。接口定义了实现类的规范,即 what to do 的部分,所有实现类必须按照这个规范进行实现。参考答案:接口的特点是不能定义变量,而且所有方法都是抽象

47、方法。而抽象类中可以有变量,也不强制必须有抽象方法。18.类继承父类与类实现接口,有什么区别?解析:类继承父类与类实现接口,本质上其实是一样的。都是将父类或者接口作为模板,在这个模板上进行扩展或者重写。程序员在实际编程中,常常需要继承父类或者实现接口。参考答案:类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。19.Comparable 接口有什么作用解析:comparable 接口是在实际编程中常常使用的接口,该接口定义了 comareTo(Object o)方法,用来定义对象的比较逻辑。这个接口常

48、常在其他 API 中会强制使用,例如 Arrays 类的 sort(Object )方法,就强制数组元素必须实现 Comparable 接口,与这个接口类似的 另外一个接口是 Comparator。参考答案:Comparable 接口定义了 compareTo(Object o)方法,可以用来实现对象的比较逻辑,这个接口常常在其他 API 中强制使用,用来规范对象的比较逻辑第五部分 其 他 特 性32、抽象类与接口? 答:抽象类与接口都用于抽象,但是抽象类(JAVA 中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。 35、面向对象的特征有哪些方面 答:主要有以下四方面: 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报