河南理工大学JAVA课后习题答案解析_第1页
河南理工大学JAVA课后习题答案解析_第2页
河南理工大学JAVA课后习题答案解析_第3页
河南理工大学JAVA课后习题答案解析_第4页
河南理工大学JAVA课后习题答案解析_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

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

文档简介

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.解释执行C.并行 C.并发(2)下面对于Jav

2、a和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语言具有许多优势和特点,以下( D )特点能保证软件的可移植性。A.健壮性 B.安全性 C.跨平台 D.动态性(6) 在下列说法

3、中错误的是(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 )与Java语言安全性有关的一项是( B )。A.并发执行B.访问权限检查C.封装性D.异常处理(11)下面不属于Java语言实现机制的是( D )oA

4、.并行机制B.Java虚拟机C.垃圾回收机制D.代码安全检测(12)下列属于Java语言垃圾回收机制的一项是( A )。A.内存跟踪B.异常处理C.代码安全检测D.健壮性第2章(一)填空题(1) Java编译器将用Java语言编写的源程序编写成 。(2) Java程序基本上可以分成两类,即 和。(3) Java程序能在 WWW浏览器上运行的是 程序。(4) Java源程序文件和字节码文件的扩展名分别为 和。(5)Java源程序的运行,至少要经过 _和_两个阶段。(6) 与结构化编程语言不同,Java是一种完全 _且与平台无关_的语言。 (二)选择题(1)下列()注释风格在Java是错误的。A.

5、/*comme nt*/B./*comme nt*/C./*comme ntD./comme nt(2)Java是一种()语言。A.编译型 B.解释型 C.混合型 D.以上都不是(3) Java作为编程语言,()是最基本的兀素。A.对象 B.方法C.包D.接口(4)JDK中,用于编译程序的工具是()。A.Javac B.Javap C.Java D.Javadoc(5)下列描述中,不正确的是()。A. 一个Java源文件不允许有多个公共类B.Java通过接口支持多重继承C.Java不支持多线程D.Java程序主要分为 Application和Applet两类(6) 在创建Applet的应用程序

6、时,用户应考虑的问题是()。A.窗口如何创建B.绘制的图形在窗口中的位置C.程序的框架 D.事件处理(7) 下列选项中,不属于Java核心包的一项是()。A.Javax.sw ingB.Java.io C.Java.util(8) JDK安装完成后,主要的命令,如夹下。A.bin B.jre C.doc D.i nclude(一)填空题(1) 执行下列程序,输出的结果为 Public class Teat1Public static void main (Stri ng args)Int a=16D.Java .langJavac、Java等,都存放在根目录的()文件Int b=2Doa/=b

7、;while(a>3)System.out.pri ntl n( 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.pri ntl n(c);,并且每个子句的常量值必(3 )在switch分支语句中的常量类型必须和表达式的类型 须互不相同 。(4) 在使用分支语句编写程序的时候,表达式只能返回int、byte、char类型的值。(5)在分支语句中break语句用于跳出

8、语句。(6 )条件语句控制程序的流程是通过判断 来进行的。(7)分支语句包括和。(8 )循环语句的控制机制是 。(9) 循环语句包括四部分: 、和。(10) 循环语句的三种循环结构:_、。(11) 在Java程序中,do-while循环语句块至少被执行 次。(12) 在for循环语句的迭代部分可以使用_进行多个操作。(二)选择题(1) 下面选项不是表达式语句的是()。A.c+; B.a=b+c; C.a+=b; D.System.out.println( A”)(2)下列说法不正确的是()。A.表达式可以是其他表达式的操作数B.单个常量或变量可以作为表达式C.表达式和表达式语句是一样的D.表达

9、式的类型可以和操作数的类型不一样(3)下面选项符合 Java语言语法的语句是()。A.i nt a=6; in st b=7;B.i nt a=4, int b=2;C.double a=b*/.8; D.i nt a=9,b=1,c=8;a=b+c=a-b+c;(4)执行下列程序,输出结果为()。Public class BPublic static void main (Stri ng args)Int x=5;Double y=10.5f;Float z=(float)(x*y);System.out.pri ntl n( z);A.50.0B.52.0C.50.5D.52.5(5) 下

10、列程序输出的结果为()。Public class APublic static void main (Stri ng args)Int a=3.b=4,c=5,d=6,e=7;lf(a<b|c>d) System.out.pri ntln( who");Else System.out.println( why ”);A.why B.who why C.whoD.没结果(6) 下面选项不属于 Java的流程控制结构的是()。A.分支语句B.循环语句C.赋值语句(表达式结构)D.递归(7)下面不是合法的条件语句的一项是()。A.if(a>b)B.if(a=1)C.if(

11、a>b&&b>c)D.if(3>2)(8) 执行下列代码之后,输出的结果为()。Public class HPublic static void main (Stri ng args)Int sum=2,a=3,b=5,c=7;While(a<b)While(b!=c)sum+=b;b+;b=4;a+;System.out.pri ntln( sum);A.23B.24C.25D.26(9) 以下说法正确的是()。Int a=10;Int t=0;do t=a+; while(t<=10);A. 次都不执行B.执行一次C.执行两次D.无限次执行(1

12、0) 下面语句中不是循环语句的是()。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. 实例变量是用s

15、tatiic修饰的成员变量(2) 下面()修饰符可以使一个类中的成员变量能被外部类调用。A.public B.protected C.privateD.没有修饰符(3) 定义类中可以用来修饰类名的修饰符是()。A.private B.abstractC.n ativeD.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.on e.a B.Number.aC.nu mber.aD.Number.o ne(8) 设Test为已定义的

17、类,下面声明类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.fi nalB.public C.abstract D.protected(11) 定义一个公有 double型符号常量PI,下面的语句中正确的是()。A.public final double PI; B.public final static

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

19、题(1) 抽象类不能实例化。()(2) 个类中,只能拥有一个构造方法。()(3 )内部类都是非静态的。()(4) 接口中的所有方法都没有被实现。()(5) 实现一个接口,则在类中一定要实现接口中的所有方法。()(6) 在Java程序中,通过类的定义只能实现单一继承。()(7)语句"import java.applet.Applet; ”中最后的 Applet 代表的是类(class)。()(二)填空题(1 )抽象方法只能存在于抽象类中,抽象方法用关键字_来修饰。(2)Java语言中 _是所有类的根。(3) new是 对象的操作符。(4)我们在Java程序中,把关键字 _加到方法名称的

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

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

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

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

24、 153=13+53+33。编程找出所有这样的水仙花数并输出 到屏幕。5.编写一个 Application程序,程序中包括计算机类 Computer,生成几个Computer类对象 并输出相关信息。Computer 类具有品牌、产地、 CPU 类型、内存容量、硬盘大小、是否带有刻录光驱、 购买日期、购买地点、价格等属性。Computer 类包括以下几类方法: 两个构造方法; dispMessages()方法,该方法输出计算机对象的一些属性信息。6.创建一个 Frame 类型的窗口, 采用 GridLayout 布局, 依照 Windows 的简单计算器的样式, 在窗口中创建一个计算器的界面。7

25、.杨辉三角是中国古代著名的数学问题,其前几行的内容如下图所示11121133 1146 411510 1051通过观察,不难发现,杨辉三角每一行中左右边界元素值均为1,而非边界元素的值等于其上一行对应位置元素值与上一行对应位置左邻元素值之和。编程实现对任意输入的正整数n值(Kn< 10),按上面的格式输出杨辉三角前n行的内容。8 定义student类,其中包括四个私有变量 (name、age sex、score)、一个构造方法和 show() 方法。各成员的含义如下。变量name为字符串类型String,用于存储学生的姓名。变量age为int类型,用于存储学生的年龄。变量sex为bool

26、ean类型,用于存储学生的性别,男生为false,女生为true。变量 score 为 double 类型,用于存储学生的成绩。构造方法包括四个参数,用于为变量(name、age sex和score)赋值。Show()方法无参数,用于输出变量( name、age、sex和score)的值。第一部分 Java 的类1、请解释 Java 语言的跨平台特性。参考答案: Java 的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。 他的意思就是如果用 Java 语言编写一个应用,那么就可以在不同平台上运行,而不需要为 不同平台单独运行开发。 之所以能实现跨平台的特性。主要得益于Java

27、虚拟机( JVM), JVM解释器在运行 Java 应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所 以可以实现同样的应用在不同平台上都能运行。2、请列举JAVA语言的主要特点参考答案:JAVA语言有很多特点,主要包括跨平台性:一个应用可以不经过修改直接 运行到不同的平台上。面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。 自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不

28、再被引用时,将被作为垃圾回收,而不需要程序员动手回收。3、请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。 参考答案: JAVA 类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象 的数据; 方法用来定义对象的行为; 构造方法可以用来创建对象; 块能够用来在类加载时执 行操作或者在每次实例化前执行通用操作; 内部类作为类的一个成员存在, 能够访问外部类 的属性和方法。4、请说明构造方法的作用和特征参考答案:构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同, 并且大小写敏感, 同时构造方法不能声明返回值类型, 可以使用任意一 种访

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

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

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

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

33、包装器类型包括哪些类,有什么作用?参考答案:包装类器包括 Byte、Short、Integer、Long、Float、Double、Character、Boolean 等类,主要 用来对 byte、short、integer、long、float、double、character、boolean 这八种基本数据类型进行包装,使其 称为引用类型。14. 请说明Java语言中的值传递规则。参考答案:基本数据类型传递的是值,引用类型传递的是引用,即虚地址。15. 使用static修饰属性或方法后,属性和方法有什么特征?参考答案:static修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有

34、共享,也可以 说是static成员不依赖某个对象,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。16使用final修饰属性后,属性有什么特征?参考答案:fianl修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。仃请说明操作符=的作用。参考答案:=可以用来比较基本类型或者引用类型。比较基本类型时,=用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。18请说明&&与&的区别和联系参考答案:&&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为 false而不会判断第二

35、个表达式的值。而 &不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值。19. break语句能在什么场景使用。参考答案:break语句可以再循环体中使用,也可以在switch的case语句中使用。20. for循环中的break语句和continue语句的使用。参考答案:break可以用来中断循环,continue可以用来继续下一次循环。21请说明一个JAVA解析:无论简单还是复杂的 JAVA应用,都是由若干个类组成,所以类是JAVA应用的组成单位。了解一个类中包含的主要元素能够对类有一个清晰的认识。一个类中往往会有五种元素,即属性、方法、构 造方法、块以及内

36、部类、其实块和内部类比较少见。参考答案:JAVA类中主要包含属性、方法、构造力法、块加内郡类“.尽性Hi來定义对象的数押h法用來定艾对象的和为 构世方淙可I从Hi來创生对 象块能够比來心类密纫同命拽化或攀海次咚即匕甫执讣通F操诈内祁娄作为类代个成员存 在,能够访问外部类的属性和方法第二部分类之间的关系1.用代码表示A类关联B类的情况。参考答案:Class APrivate B b;Public void setB(B b)This.b=b;2请说明Java语言中数组的基本概念,数组的作用,以及数组的声明创建方 式。参考答案:数组时相同元素的集合,作为数据容器使用。声明创建一个int型数组,如下

37、所示:intx=newint3;其中3是数组的长度,该数组能够存储3个int型变量。3使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组 打印出数组中的元素。参考答案:StringD sArray = new String5;For(String s:sArray)System.out.println(s);4.说明Arrays类的作用。参考答案:Arrays类是java.util包中的一个类,类中所有的方法都是 static方法,这些方法都是数组对 象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序5请使用简单代码展示 A类依赖B类的含义。解析:

38、对于程序员来说,了解类和类之间的关系非常必要。依赖关系指的是一种瞬间的关系。如果A依赖B,般指的是A类的某个行为,需要 B类对象作为参数。参考答案:Class APublic void f(B b)6请说明依赖关系和关联关系的区别。解析:关联关系和依赖关系是非常常见的两种关系,二者的区别也很明显,程序员了解二者的区别能 够更深入的理解面向对象的思想。参考答案:依赖关系是一种瞬时关系, A依赖B,指的是A的某个行为的参数是 B的类型,也就是说, A要想实现这个行为,必须依赖 B的实例,A关联B,是一种长久的关系。关联关系的是 B作为A的属性 存在,只要实例化一个A的对象,就会为这个A的对象实例化

39、一个B的对象,作为它的属性使用,可以在A 中任何需要使用 B 的地方使用 B 。7.继承有什么作用, Java 语言中的继承有什么特点?解析:继承是面向对象语言的一大特征,主要作用是重复使用,子类通过继承父类,能够重复使用父类的 属性和方法。指的注意的是,有两个策略都可使实现重复使用,一个是关联,一个是继承,实际编程中,关联用的更多。因为子类继承父类后,相当于父类中的细节将暴露给子类。 初级程序员一定不要随意使用继承,避免滥用继承。参考答案:继承主要为了能够重复使用父类中的成员。 Java 语言中的继承是单继承,也 就是说一个类最多只能继承一个父类。8、什么是方法覆盖(override) ?并

40、说明方法覆盖与方法重载(overioad)的区 别。解析:方法覆盖是一个非常重要的概念,是多态性的一个体现。方法覆盖发生再去爱继就可以声明一个父类同名同子类对象调用该方法时将自String 类中的 toString 方承关系中, 当子类需要修改从父类继承到某个方法的方法体时, 参数同返回值的方法, 这样就对父类中的那个方法进行了覆盖, 动绑定到子类中的方法°api中很多类中都进行了方法覆盖,如 法,就覆盖了父类 Object 中的 toString 方法。参考答案 :覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法 体时, 就可以在子类中声明一个与父类同名、 同参

41、数并且同返回值类型的方法, 这就是方法 覆盖。而重载与继承没有关系, 指的是在一个类中可以同时声明多个同名但不同参数的方法, 称为重载。9、请说明什么是抽象类?抽象类有什么作用?解析:初级程序员往往不需要自己创建抽象类,但是必须了解抽象类的概念,并且会使 用抽象类。 抽象类往往是设计阶段的概念, 用来定义多个子类的模板, 一些具体的实现可以 在子类中进行。初级程序员往往需要会创建子类继承抽象类,实现抽象类中的方法。在API中,抽象类比比皆是。参考答案:抽象类是不能实例化的类, 使用abstract修饰。抽象类往往用来做父类使用, 定义一些子类的共同属性或行为。10、请说明抽象方法的含义,并说明

42、抽象类与抽象方法的关系。解析:抽象方法都是在抽象类中定义的,是用来定义子类 what to do 的策略,而具体的 how to do 都在子类中实现。参考答案:抽象方法是没有办法体的方法,使用 abstract 修饰。抽象类中不一定有抽象 方法,但是有抽象方法的类一定是抽象类。11、super关键字的两种用法。解析:使用一些IDE生成代码时,常常会在构造方法中见到super这个关键字。顾名思义,super是和父类有关的一个关键字,熟悉super的用法对熟练掌握继承很有必要。参考答案:如super():表示调用父类中的每一参考的构造方法:又如super(10);表示调用父类中的具有一个整型参数

43、的构造方法。第二种用法是在子类中调用父类中的成员,如 super.f();意思是调用父类中的 f()方法。12、final 类与 final 方法有什么作用?解析: final 修饰符是一个用途非常广泛的修饰符,可以修饰类,方法,以及属性。参考答案: final 类是不能够被继承的类,称为终极类,如 String 类就是 final 类,不能有 子类。 final 修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。13. 什么是多态函数?多态函数有什么用?解析:多态性是面向对象语言的的一大特征,重载,覆盖,多态参数是多态性的一种表现形式。多态参数处处可见,例如某方法 f(Obje

44、ct o),这个方法的参数类型是 Object,使用该方法时,只要传递给 f的单 数类型是 Object 即可。也就是说, Object 类的任意参数可以传递给 f 方法。这就是多态参数。意思是对外 形式都一样,都是 Object,具体实现可以是这个类型的任意子类,这就使得该方法比较灵活,Object类即使有了新的子类,却不需要修改,就能直接作用到那个子类。了解多态参数的含义和使用,对于Java的使用特别关键。参考答案:多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的 任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%的%子类方法不需要任何修改,就能接受子

45、类类型进行处理。14.Object 类有什么特点?解析:Object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个Java类,不管是API中定义的,还是自定义的类,都直接或间接的继承了 Object类。所以,如果有一个方法f(Object o), 那么可以传递给这个方法任意一个类的对象,包括 %因为所有对象都可以说是 Object类型。参考答案: Object 类是多有类的直接或间接的父类。15. Object 类中的 toString 方法有什么用?解析: Object 类是所有类的父类, 所以 Object 类中的方法是所有类都默认具备的。 类中的 toString 方

46、法可以将任意一个对象作为字符串返回, API 中很多类已经覆盖了这个方法,将其返回值的格式进行了自 定义, 如 String 类中的方法已经覆盖为返回字符串的字符序列。 toString 方法在很多场合被自动调用, 例如 打印一个对象时,就自动调用该对象的 toString 方法。参考答案: toString 方法可以把对象作为字符串返回。16.0bject类中的equals方法和hashCode方法。解析:在 Object 类中, equals 方法比较对象的引用值,也就是只有物理上是同一对象的两个引用, 在使用equals方法返回true。hashCode方法返回一个对象的内在地址的十六进制值。由于Object类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作Set,Map 对象时集合元素类的equals方法和hash

温馨提示

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

评论

0/150

提交评论