面向对象程序设计(java)题库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计(java)题库
抽题规范:
(1)此题库共75道题,抽8道作为期末考试题。
其中,易8道,较易33道,较难
18道,容易16道.
(2)按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题
抽1
道,每道20分后;第四大题扣1道,每道20分后。
(3)按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。
一、答疑题(共40道,扣4道,每道10分后,共40分后)
1.面向对象有哪三大特征?封装,继承,多态.
2.什么是类?(易)
类就是定义同一类所有对象的变量和方法的蓝图或原型。
3.什么就是对象?
对象是类的实例;对象是通过newclassname产生的,用来调用类的方法;类的构造方法.。
4.类和对象的区别是什么?
java中的类就是模板,而对象就是依据模板产生的实体5.详述java的PCB性,如何
在java中同时实现PCB
封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。
实现为加访问权限。
6.构造方法有哪些特点
方法名与类名相同,没返回值,可以存有多个空载。
7.构造方法的促进作用就是什么?(更易)
初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。
8.this在程序中所代表的意思(易)指当前对象
9承继的促进作用就是什么?(极易)同时实现代码F83E43Se。
10.java支持多继承吗?(易)不能。
11.子类可以承继父类的哪些成员?(较难)变量和构造方法。
12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。
13.什么就是方法的空载,如何挑选被空载的方法?(更易)
同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法
被重载了,这个过程被称为重载。
14什么就是方法的改写,如何挑选被改写的方法?(较难)
当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写
过了,实现功能完全和父类无关。
15.详述空载和全面覆盖的区别(更易)
重载是让同一方法名的方法可以处理和返回不同类型的数据而覆盖是在子类中改写父
类的方法
16.什么就是成员的暗藏?如何出访被暗藏了的父类成员?(更易)
在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类
隐藏了父类的成员变量。
super语句。
17.详述this和super的区别(较难)
this即可以拿到自己的也可以拿到父类的,super只能拿到父类的18.简述面向对象
的多态性(较易)一个接口,多个方法
19.详述实例变量和类变量的区别(更易)类变量就是所有对象共计,其中一个对象
将它值发生改变,其他对象获得的就是发生改变后的结果;而实例变量则属于对象私有,
某一个对象将其值发生改变,不影响其他对象;实例变量就是类实例化后,系统为其建立
的一个类的实例变量的拷贝,即为一个实例具有一个实例变量。
类变量则是用static声明,系统为每个类变量分配一次存储空间。
即所有的实例共
享一个类变量。
1.详述静态方法和实例方法的区别(更易)
在外部调用静态方法时,可以使用\类名.方法名\的方式,也可以使用\对象名.方法
名\的方式。
而实例方法只有后面这种方式。
也就是说,调用静态方法可以无需创建对象。
静态方法在出访本类的成员时,只容许出访静态成员(即为静态成员变量和静态方法),而不容许出访实例成员变量和实例方法;实例方法则无此管制。
2.详述按值传达和
按址传达的区别(较难)
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对
应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的
存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
提及传达:(形式参数类型就是提及数据类型参数):也称作传地址。
方法调用时,实
际参数就是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法继续执行中,对形式参数的操作方式实际上就是对实际参数的操作方式,这个结果在方法完结后被留存
了下来,所以方法继续执行中形式参数的发生改变将可以影响实际参数。
3.什么是抽象类?抽象类中一定有抽象方法吗?(较难)
java中用abstract声明的类就叫作抽象类,抽象类中抽象化方法可有可无,但通常
都所含抽象化方法(这就是定义抽象类的目的所在)使子类承继,如果子类没把抽象类中
所有的抽象化方法都改写,则这个承继了抽象类的子类也可以沦为抽象类;如果子类把抽
象类中所有的抽象化方法都改写,则这个子类就可以实例化后了。
4.什么是接口?接口中的成员有什么特点?(较易)
javaUSB(interface),就是一系列方法的声明,就是一些方法特征的子集,一个USB只有方法的特征没方法的同时实现,因此这些方法可以在相同的地方被相同的类同时
实现,而这些同时实现可以具备相同的犯罪行为(功能)。
接口的特点就是实现类必须实现接口中定义的方法;5.简述抽象类和接口的区别(较易)
USB可以多重承继,抽象类就可以单承继
类实现(implements)某一接口必须实现该接口的所有方法,一个类实现(extends)一
个抽象类则可以根据需要有选择的实现需要的方法
USB就是一种标准。
6.extends和implements的区别是什么?(较易)
extends就是承继另外一个类。
也就是说那个类里面的方法不须要再写,轻易可以当
作用了。
implements是实现接口,也就是说接口里面的方法都需要自己把它补充完整作为一个可用的方法。
7.final可以用在哪些地方,分别代表什么意思?(更易)
final修饰符可以用来修饰类,类的方法,变量;用final修饰符修饰变量时,一旦
该变量获得了初始值之后就不可改变。
用final修饰符修饰的类不能被继承,用final修
饰符修饰的方法不能被重写。
8.static可以用在哪些地方,分别代表什么意思?(更易)
用static修饰成员变量,使其成为静态变量,该类的所有实例都将共享此变量;用static修饰方法,使其成为静态方法,类加载之后你便可以直接调用此方法,而不需要一个此类的实例;用static修饰代码块,类加载时会执行这段代码。
9.静态代码块的作用
是什么?它被执行几次?(较易)
static则表示静态方法,用以润色方法,在main方法里,必须存有static,否则就
可以收起,但是必须必须,并且无法替代,main方法本身就建议就是静态的,这就是规定。
10.java中包的促进作用就是什么(极易)
java中的包,可以理解为命名空间。
11.在java中,import和package的区别?(极易)
package是运行程序后生成的.class文件全部放在了所定义的包中,便于以后调用管理.import则是在编写程序的时候需要调用某个包中的
类.12.public,protected,default,private的区别(较易)
public就是公用的,其他类都可以调用.
private是私有的,是最严格的,只有当前类(当前java文件)可以调用,甚至继承当前
类的子类都不能调用.
protected化解了private的子类无法调用的瑕疵,可以认知为一个承继系下的可以调用
13.内部类的作用是什么?内部类常用在哪里?(较难)
内部类可以较好的同时实现暗藏,也就是PCB性。
通常的非内部类,就是不容许存有private与protected权限的,但内部类可以;内部类具有外围类的所有元素的出访权限;可是同时实现多重承继;可以防止修正USB而同时实现同一个类中两种同名方法的调用。
在这里内部类inner中关键字this指向内部类inner的对象,如果要想指向外部类
的对象,必须在this指针前加上外部类名称,表示this是指向外部类构造的碎屑。
14.
简述异常处理机制(较难)
在出现异常的地方轻易处置;
将异常抛给调用者,让调用者处理。
15.简述throw和throws的区别(较易)
如果程序在运转中出现了不容许的情况比如说除0,比如说空指针,常用的异常jvm
可以自动的扔出异常,对于jvm不晓得的异常,须要人工扔出和捕捉,摆出现异常的时候
捕捉异常可以对异常展开处置。
16.简述final和finally的区别(较易)
final用作声明属性,方法和类,分别则表示属性不容接头处,方法不容全面覆盖,
类不容承继。
finally是异常处理语句结构的一部分,表示总是执行。
17.列举三个常用的异常并表明其促进作用(更易)
空指针错误:使用基本的java数据类型,变量的值要么已经是默认值,如果没有对其
正常赋值,程序便不能通过编译,因此使用基本的java数据类型一般不会引起空指针异常。
由此可见,空指针异常主要跟与对象的操作相关。
格式化数字错误促进作用就是将用户递交的表单域的值转变为整数。
字符串越界错误
功能就是以获取字符串中的第4个字符。
18.详述string和stringbuffer的区别(更易)
string对象是不可变对象,每次操作sting都会重新建立新的对象来保存新的
值.stringbuffer对象实例化后,只对这一个对象操作。
字符串相连接操作方式中stringbuffer的效率必须显著比string低。
19.集合collection包含哪两大子接口?它们的区别是什么?(较易)collection接口和list接口区别是:
collection就是最基本的子集USB,一个collection代表一组object,即
collection的元素(elements)。
list是有序的collection,使用此接口能够精确的控制每个元素插入的位置。
20.如
何把一个字节流转换成字符流?(较易)
字节确权改成字符流可以用inputsteamreader/outputstreamwriter相互切换。
21.
使一个类沦为线程存有哪两种方式?(更易)
第一种方法是将类声明为thread的子类。
该子类应重写thread类的run方法。
第二
种方法是声明实现runnable接口的类。
该类然后实现run方法。
然后可以分配该类的实例,在创建thread时作为一个参数来传递并启动。
二、单项编程(共25题,扣2题,每题10分后,共20分后)
1.设计一个矩形类,有长和宽两个属性,能够计算每一个矩形的面积和周长;再编写一
个主类,在其主方法main中建立一个具体内容的矩形,算出该矩形的周长和面积。
(更易)
2.(1)设计一个圆类,有一个属性半径,能够计算每一个圆的面积和周长;再编写一
个主类,在其主方法main中建立一个具体内容的圆形,算出该圆形的周长和面积。
(更易)
3.设计一个盒子类box,它有长、宽、高三个私有成员属性,包含无参数和有参数的
构造方法,分别同时实现设置和以获取属性的setter和getter方法,以及谋盒子体积的公有方法。
其中,构造方法用作对成员变量初始化,并无参数的构造方法将成员变量初始化为0值。
再撰写一个主类boxtest,在其主方法main()中建立若干个box对象,输入其长、阔、低及其体积的值。
(更易)
4.设计一个人类,有姓名、年龄、性别、身高、体重属性,以及吃饭、穿衣服、跑步
犯罪行为;再撰写一个主类,在其主方法main中建立两个人类对象,并分别为各个
对象的属性诗赋初值,然后列印出来各个对象的所有基本信息。
(更易)
5.编写学生类和成绩类。
成绩有科目和分数信息。
学生有姓名和成绩信息,学生类的
getresult()方法表明输入成绩信息,setdata()方法同时实现初始化学生信息。
(较难)6.(1)定义一个动物类animal,存有动物类型属性type和动物表达意见的方法
sound();
(2)定义基于动物类的狗类dog和猫类cat,这两个类都要求覆盖父类的发声方法;(3)定义animaldemo类,声明一个animal对象,分别创建一个dog、cat类的对象,然后通
过animal对象来访问dog、cat类对象的sound()方法。
(难)
7.(1)设计一个则表示二维平面上圆的类circle,存有则表示圆半径的protected类型的成员
变量radius、获取和设置radius值的public方法、计算圆面积的public方法。
(2)设计一个表示圆柱体的类cylinder,它继承自类circle,还包含有表示圆柱体高的protected类型的成员变量height、获取和设置height值的public方法、计算圆柱体体积的public方法。
(3)创建若干个cylinder对象,输入其半径、低及其体积的值。
建议:
a、每个类包含无参数和有参数的构造方法。
构造方法用于对成员变量初始化,无参
数的构造方法将成员变量初始化为0值。
b、子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。
(较难)8.
恳请采用承继关系同时实现以下叙述:(较难)
自行车和豪车属于车类型车(car):车牌号(cid)、车型(dtype)、价值(cvalue)自行车(bicycle):车牌号(cid)、车型(dtype)、价值(cvalue)、链
条(chain)豪车(limo):车牌号(cid)、车型(dtype)、价值(cvalue)、导航(guide)9.使用一个类里面包含其他类的对象的方法实现下列描述:(较难)
存有1个副组长,手下存有2个助手,每个助手存有2部车。
副组长(leader):姓
名(lname)、年龄(lage)助手(asist):编号(aid)、年龄(aage)、姓名(aname)、嗜好(ahobby)车(car):车牌号(cid)、车型(dtype)、价值(cvalue)10.采用一个类里面涵盖其他类的对象的方法同时实现以下叙述:(较难)。