《河南理工大学-JAVA课后习题答案.docx》由会员分享,可在线阅读,更多相关《河南理工大学-JAVA课后习题答案.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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.解释执行 C.并行 C.并发(2)下面对
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语言具有许多优势和特点,以下( 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)下面不属
4、于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)Java源程序的运行,至少要经过 和 两个阶段。(6)与结构化编程语言不同,Java是一种完全 且与平台 无关 的语言。(二)选择题(1)
5、下列( )注释风格在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)下列描述中,不正确的是( )。A.一个Java源文件不允许有多个公共类 B.Java通过接口支持多重继承C.Java不支持多线程 D.Java程序主要分为Application和A
6、pplet两类(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.bin B.jre C.doc D.include第3章(一)填空题(1)执行下列程序,输出的结果为 。Public class Teat1Public static void main(String
7、 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);(3)在switch分支语句中的常量类型必须和表达式的类型 ,并且每个子句的常量值必须 互不相同 。(4)在使用分支语句编写程序的时候,表达式只能返回int、byte、 、char类型的值。(5)在分支语
8、句中break语句用于跳出 语句。(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.单个常量或变量可以作为表达
9、式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 class 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
10、.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.who why C.who D.没结果(6)下面选项不属于Java的流程控制结构的是( )。A.分支语句 B.循环语句 C.赋值语句(表达式结构) D.递归(7)下面不是合法的条件语句的一项是( )。A.if(ab) B.if(a=1) C.if(a
11、b&bc) D.if(32)(8)执行下列代码之后,输出的结果为( )。Public class HPublic static void main(String args)Int sum=2,a=3,b=5,c=7;While(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)下面语句中不是循环语句的是( )。A.for语句
12、 B.while语句 C.switch语句 D.do-while语句第4章(一)判断题(1)所谓对象,就是一组类的集合。 ( )(2)方法的声明和方法调用的形式一样。 ( )(3)类是对一组具有相同属性、表现相同行为的对象的描述。 ( )(4)类成员只有三种访问控制级别:公有(public)、受保护(protected)和私有(private)。(5)Java语言中对象传递的是引用而不是值。 ( )(6)所谓非静态的成员变量是指每一次创建对象都会分配一个存储空间来储存这个变量,每一个对象都拥有这个变量的存储空间,这个变量是属于类的,是类的变量。 ( )(二)填空题(1)面向对象的语言将客观世界
13、都看成由各种对象所组成。具有共同特征和行为的对象组成类,类是变量和 的集合。(2)在面向对象方法中,类的实例被称为 。(3)在Java中,对象使用应遵循的原则是 。(4)在Java中,类描述的是具有相同属性的 。(5)在Java程序里,对象是类的一个 。(6)在Java程序结构里,最基本的概念是类和 。(7)引用static类型的方法时,可以使用 做前缀,也可以使用 做前缀。(8)类中的 方法是一个特殊的方法,其名称与类名相同。(9)一个类主要包含两个成员要素: 和 。(10)静态数据成员既可以通过 来访问,也可以通过 来访问。(11)Java是面向对象的语言,对象是客观事物的 ,对象与之是一
14、一对应的。(12)定义一个类包括定义类头和定义 两个部分。(13)Java语言以 为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。(14)把对象实例化可以生成多个对象,使用 运算符为对象分配内存空间。(15)在Java中有一种叫做 特殊方法,在程序中用它来对类成员进行初始化。(三)选择题(1)下面关于类变量和实例变量的叙述中描述错误的是( )。A实例变量是类的成员变量B.类变量第一次用到时被初始化,以后创建其他对象时就不再进行初始化C.实例变量在每次创建对象时都被初始化D.实例变量是用statiic修饰的成员变量(2)下面( )修饰符可以使一个类中的成员变量能被外部类调用。
15、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.可以被其他包中的该类的子类访问(6)下面关于类的说法中,错误的是( )。A.类是经过抽象的共有属性的集
16、合 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.one(8)设Test为已定义的类,下面声明类Test对象a的语句正确的是( )。A.Test a=Test();
17、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 double PI; B.public final static double PI=3.14159;C.public final stati
18、c 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 void f() D.static void f()第6章(一)判断题(1)抽象类不能实例化。 ( )(2)一个类中,只能拥有一个构造方法。 ( )(3
19、)内部类都是非静态的。 ( )(4)接口中的所有方法都没有被实现。 ( )(5)实现一个接口,则在类中一定要实现接口中的所有方法。 ( )(6)在Java程序中,通过类的定义只能实现单一继承。 ( )(7)语句“import java.applet.Applet;”中最后的Applet代表的是类(class)。 ( )(二)填空题(1)抽象方法只能存在于抽象类中,抽象方法用关键字 来修饰。(2)Java语言中 是所有类的根。(3)new是 对象的操作符。(4)我们在Java程序中,把关键字 加到方法名称的前面,来实现子类调用父类的方法。(5)在Java程序里,同一类中重载的多个方法具有相同的方
20、法名和 的参数列表,重载的方法可以有不同的返回值类型。(6)如果一个类中定义了几个名为method的方法,这些方法的参数都是整数,则这些方法的 必须是不同的,这种现象称为方法的重载。(7)Java程序引入接口的概念,是为了弥补只允许类的 的缺憾。(8)Java语言通过接口支持 继承,使类继承具有更灵活的扩展性。(9)接口是一种只含有抽象方法或 的特殊抽象类。(10)abstract方法 与final并列修饰同一个类。(11)每个applet程序必须有一个类是 类的子类。(12)在Java程序里,类之间实现共享属性的机制称为 。(13)在Java程序里,在一个类内部嵌套定义的类称为 。(14)一
21、个类可以从它的父类中继承所有的属性和方法。采用这种方法可以提高软件的 。(15)接口是包含常量和抽象方法的一个特殊的 。(16)在运行时,由Java解释器自动引入,而不用import语句引入的包是 。(17)一个子类一般比其基类封装的功能要 。(18)标记成 的类的成员不能由该类的方法访问。(19)如果一个类包含一个或多个abstract方法,它就是一个 类。(20)接口中的数据成员是 ,接口中没有什么 方法,所有成员方法都是方法。问答题1JDK安装完成后,如何设置环境变量?2 什么是类?什么是对象?3线程的生命周期有哪几部分组成?各自的功能是什么?4简述Java应用程序与Applet小程序在
22、开发过程中的区别。5用例子说明Java中基于Socket的C/S模式的服务器端的编程模式。(只要求写出必要的语句,其他语句用省略号表示)6Java实现多线程的方法有哪些?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 14 3 2 13 2 12 112 定义一个实现常用数学运算的类MyMath,类中提供max()、min()、sum()与averag
23、e()四个静态方法,每个方法带有三个整形参数,分别实现对三个整数求取最大值、最小值、和值及平均值的运算。在主类中对任意输入的三个整数,调用MyMath类的四种静态方法,求取结果并输出。3. 创建一个Frame类型的窗口,在窗口中放置必要的标签、文本、列表框、单选按钮及复选框等组件,用来显示一名学生的个人基本信息。4 求水仙花数:水仙花数是这样的一个三位正整数,此数各数字的立方之和恰好等于该数之值。例如153就是一个水仙花数:153=13+53+33。编程找出所有这样的水仙花数并输出到屏幕。5编写一个Application程序,程序中包括计算机类Computer,生成几个Computer类对象并
24、输出相关信息。Computer类具有品牌、产地、CPU类型、内存容量、硬盘大小、是否带有刻录光驱、购买日期、购买地点、价格等属性。Computer类包括以下几类方法:两个构造方法;dispMessages()方法,该方法输出计算机对象的一些属性信息。6创建一个Frame类型的窗口,采用GridLayout布局,依照Windows的简单计算器的样式,在窗口中创建一个计算器的界面。7杨辉三角是中国古代著名的数学问题,其前几行的内容如下图所示:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1通过观察,不难发现,杨辉三角每一行中左右边界元素值均为1,而非边界元素的值等于其上
25、一行对应位置元素值与上一行对应位置左邻元素值之和。编程实现对任意输入的正整数n值(1n10),按上面的格式输出杨辉三角前n行的内容。8定义student类,其中包括四个私有变量(name、age、sex、score)、一个构造方法和show()方法。各成员的含义如下。变量name为字符串类型String,用于存储学生的姓名。变量age为int类型,用于存储学生的年龄。变量sex为boolean类型,用于存储学生的性别,男生为false,女生为true。变量score为double类型,用于存储学生的成绩。构造方法包括四个参数,用于为变量(name、age、sex和score)赋值。Show()
26、方法无参数,用于输出变量(name、age、sex和score)的值。第一部分 Java的类1. 请解释Java语言的跨平台特性。参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。2.请列举JAVA语言的主要特点参考答案:JAVA语言有很多特点,主要包括跨平台性:一个应用
27、可以不经过修改直接运行到不同的平台上。面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。参考答案:JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创
28、建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。4、请说明构造方法的作用和特征参考答案:构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。5、什么事方法重载(overload)?参考答案:方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM会根据实际参数的
29、不同绑定到不同的方法。6、请列举Java语言中的权限访问修饰符,并说明每种权限的含义。参考答案:Java语言中有四种权限访问修饰符,即public、protected、同包以及private,public表示公共权限,即任何包中都可以访问:protected表示受保护权限,即同包中可以访问,同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private是私有权限,表示只能在本类中访问。7、请列举Java语言中的八种基本数据类型,并说明每种数据类型的含义及长度。参考答案:Java语言的八种基本数据类型有:byte字节型,8位长度:sho
30、rt短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true和false两个值,分别表示真和假8.什么叫引用类型,引用类型和基本数据类型有什么区别?参考答案:Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和
31、方法,往往都在声明属性或方法时使用。9.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。10.String类是一个“不可变类”,请解释“不可变类”的含义。参考答案:所谓的不可变类,就是当字符串初始化后,就不能够被改变。11.String类和StringBuffer类有什么区别?参考答案:String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可
32、以修改字符串的值。12StringBuffer和StringBuilder类有什么区别?参考答案:StringBuffer是线程安全的字符串缓冲,而StringBuilder不是线程安全的。13.包装器类型包括哪些类,有什么作用?参考答案:包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。14. 请说明Java语言中的值传递规则。参考答案:基本数据类型传递的
33、是值,引用类型传递的是引用,即虚地址。15.使用static修饰属性或方法后,属性和方法有什么特征?参考答案:static修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有共享,也可以说是static成员不依赖某个对象,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。16.使用final修饰属性后,属性有什么特征?参考答案:fianl修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。17.请说明操作符=的作用。参考答案:=可以用来比较基本类型或者引用类型。比较基本类型时,=用来比较二进制的值,比较引用类型时,用来比较对象
34、的虚地址。18请说明&与&的区别和联系参考答案:&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为false而不会判断第二个表达式的值。而&不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值。19. break语句能在什么场景使用。参考答案:break语句可以再循环体中使用,也可以在switch的case语句中使用。20.for循环中的break语句和continue语句的使用。参考答案:break可以用来中断循环,continue可以用来继续下一次循环。21 请说明一个JAVA类中主要包含哪几个元素并说明每种元素的作用。 解析:无论简单还是复杂的JA
35、VA应用,都是由若干个类组成,所以类是JAVA应用的组成单位。了解一个类中包含的主要元素能够对类有一个清晰的认识。一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。 参考答案:JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据方法用来定义对象的行为构造方法可以用来创建对象块能够用来在类加载时执行操作或者在每次实例化前执行通用操作内部类作为类的一个成员存在,能够访问外部类的属性和方法第二部分 类之间的关系1. 用代码表示A类关联B类的情况。参考答案:Class A Private B b;Public void setB(B b)
36、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类的作用。参考答案:Arrays类是java.util包中的一个类,
37、类中所有的方法都是static方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序5.请使用简单代码展示A类依赖B类的含义。解析:对于程序员来说,了解类和类之间的关系非常必要。依赖关系指的是一种瞬间的关系。如果A依赖B,一般指的是A类的某个行为,需要B类对象作为参数。参考答案:Class APublic void f(B b)6.请说明依赖关系和关联关系的区别。解析:关联关系和依赖关系是非常常见的两种关系,二者的区别也很明显,程序员了解二者的区别能够更深入的理解面向对象的思想。参考答案:依赖关系是一种瞬时关系,A依赖B,指的是A的某个行为的参数是B的类
38、型,也就是说,A要想实现这个行为,必须依赖B的实例,A关联B,是一种长久的关系。关联关系的是B作为A的属性存在,只要实例化一个A的对象,就会为这个A的对象实例化一个B的对象,作为它的属性使用,可以在A中任何需要使用B的地方使用B。7.继承有什么作用,Java语言中的继承有什么特点?解析:继承是面向对象语言的一大特征,主要作用是重复使用,子类通过继承父类,能够重复使用父类的属性和方法。指的注意的是,有两个策略都可使实现重复使用,一个是关联,一个是继承,实际编程中,关联用的更多。因为子类继承父类后,相当于父类中的细节将暴露给子类。初级程序员一定不要随意使用继承,避免滥用继承。 参考答案:继承主要为
39、了能够重复使用父类中的成员。Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。8、什么是方法覆盖(override)?并说明方法覆盖与方法重载(overioad)的区别。 解析:方法覆盖是一个非常重要的概念,是多态性的一个体现。方法覆盖发生再去爱继承关系中,当子类需要修改从父类继承到某个方法的方法体时,就可以声明一个父类同名同参数同返回值的方法,这样就对父类中的那个方法进行了覆盖,子类对象调用该方法时将自动绑定到子类中的方法。中很多类中都进行了方法覆盖,如String类中的toString方法,就覆盖了父类Object中的toString方法。参考答案:覆盖是发生在继承关系的子
40、类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。9、请说明什么是抽象类?抽象类有什么作用?解析:初级程序员往往不需要自己创建抽象类,但是必须了解抽象类的概念,并且会使用抽象类。抽象类往往是设计阶段的概念,用来定义多个子类的模板,一些具体的实现可以在子类中进行。初级程序员往往需要会创建子类继承抽象类,实现抽象类中的方法。在API中,抽象类比比皆是。 参考答案:抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使
41、用,定义一些子类的共同属性或行为。10、请说明抽象方法的含义,并说明抽象类与抽象方法的关系。解析:抽象方法都是在抽象类中定义的,是用来定义子类what to do的策略,而具体的how to do都在子类中实现。参考答案:抽象方法是没有办法体的方法,使用abstract修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。11、super关键字的两种用法。 解析:使用一些IDE生成代码时,常常会在构造方法中见到super这个关键字。顾名思义,super是和父类有关的一个关键字,熟悉super的用法对熟练掌握继承很有必要。参考答案:如super():表示调用父类中的每一参考的构造方法:
42、又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的f()方法。12、final类与final方法有什么作用?解析:final修饰符是一个用途非常广泛的修饰符,可以修饰类,方法,以及属性。参考答案:final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。13.什么是多态函数?多态函数有什么用?解析:多态性是面向对象语言的的一大特征,重载,覆盖,多态参数是多态性的一种表现形式。多态参数处处可见,例
43、如某方法f(Object o),这个方法的参数类型是Object,使用该方法时,只要传递给f的单数类型是Object即可。也就是说,Object类的任意参数可以传递给f方法。这就是多态参数。意思是对外形式都一样,都是Object,具体实现可以是这个类型的任意子类,这就使得该方法比较灵活,Object类即使有了新的子类,却不需要修改,就能直接作用到那个子类。了解多态参数的含义和使用,对于Java的使用特别关键。参考答案:多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%的子类方法不需要任何修改,就能接受子类类型进行处理。14.Object类有什么特点?解析:Object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个Java类,不管是API中定义的,还是自定义的类,都直接或间接的继承了Object类。所以,如果有一个方法f(Object o),那么可以传递给这个方法任意一个类的对象,包括%。因为所有对象都可以说是Object类型。参考答案:Object类是多有类的直接或间接的父类。15.Object类中的toString方法有什么用?解析:Objec