实用教程习题集第4章Word文件下载.docx
《实用教程习题集第4章Word文件下载.docx》由会员分享,可在线阅读,更多相关《实用教程习题集第4章Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
A.private,finalB.public,abstract
C.static,protectedD.static
5.Java的封装性是通过()实现的。
A.访问权限控制B.设计内部类
C.静态域和静态方法D.包
6.下列说法哪个是正确的?
A.子类不能定义和父类同名同参数的方法
B.子类只能继承父类的方法,而不能重载
C.重载就是一个类中有多个同名但有不同形参(类型、参数个数或参数顺序)和方法体的方法
D.子类只能覆盖父类的方法,而不能重载
7.对于下列代码:
publicclassParent{
publicintaddValue(inta,intb){
ints;
s=a+b;
returns;
}
}
classChildextendsParent{}
下列哪个方法不可以加入类Child?
A.publicintaddValue(inta,intb,intc){returna+b+c;
B.intaddValue(inta,intb){returna+b;
C.publicintaddValue(inta){returna+1;
D.publicintaddValue(inta,intb){returna+b+1;
8.对于下列代码:
1.classPerson{
2.publicvoidprintValue(inti,intj){//....}
3.publicvoidprintValue(inti){//....}
4.}
5.publicclassTeacherextendsPerson{
6.publicvoidprintValue(){//...}
7.publicvoidprintValue(inti){//....}
8.publicstaticvoidmain(Stringargs[]){
9.Pesont=newTeacher();
10.t.printValue(10);
11.}
12.}
第10行语句将调用哪行语句?
A.第2行B.第3行C.第6行D.第7行
9.以下程序段输出结果的是()。
publicclassAimplementsB{
publicstaticvoidmain(Stringargs[]){
int=i;
Ac1=newA();
i=c1.k;
System.out.println(“i=”+i);
interfaceB{
intk=10;
A.i=0B.i=10C.程序有编译错误D.i=true
10.阅读下面的程序,输出结果是()?
publicclassTestDemo{
intm=5;
publicvoidsome(intx){
m=x;
publicstaticvoidmain(Stringargs[]){
newDemo().some(7);
classDemoextendsTestDemo{
intm=8;
super.some(x);
System.out.println(m);
A.5B.8C.7D.编译错误
11.下述哪个方法不可以加入类Subclass?
classSupClass{
publicvoidmethodOne(inti){}
publicvoidmethodTwo(inti){}
publicstaticvoidmethodThree(inti){}
publicstaticvoidmethodForth(inti){}
classSubClassextendssupClass{
.....
A.publicstaticvoidmethodOne(inti){}
B.publicvoidmethodTwo(inti){}
C.publicstaticvoidmethodThree(inti,intj){}
D.publicstaticvoidmethodForth(inti){}
12.关于下面的程序,说法正确的是()。
classBase{
intm;
publicBase(intm){
this.m=m+1;
publicclassTestextendsBase{
publicTest(){
m=m+1;
publicstaticvoidmain(Stringargs[]){
Testt=newTest();
System.out.print(t.m);
A.输出结果为0B.输出结果为1
C.输出结果为2D.编译出错
13.关于下面的程序,编译和运行后输出结果是()
classBase{
intm=0;
publicintgetM(){
returnm;
intm=1;
Testt=newTest();
System.out.print(t.m);
System.out.print(t.getM());
A.00B.01C.10D.11
14.设有下面的两个类定义:
classA{
voidShow(){
System.out.println(“我喜欢Java!
”);
classBextendsA{
voidShow(){
System.out.println(“我喜欢C++!
则顺序执行如下语句后输出结果为()。
Aa=newA();
Bb=newB();
a.show();
b.show();
A.我喜欢Java!
B.我喜欢C++!
我喜欢C++!
我喜欢Java!
C.我喜欢Java!
D.我喜欢C++!
15.现有两个类A和B,以下描述中表示B继承A的是()。
A.classAextendsBB.classBimplementsA
C.classAimplementsD.classBextendsA
16.定义类B和类C如下,并将其保存为B.java文件,得到的结果是()。
classB{
intb;
B(inti){
b=i;
classCextendsB{
doublec=7.8;
A.代码能够成功编译运行
B.代码无法编译因为类B不是一个应用程序或小程序
C.代码无法编译,因为类C没有定义一个带参数的构造方法
D.代码无法编译,因为类B没有定义一个不带参数的构造方法
17.类Teacher和Student都是类Person的子类,t、s、p分别是上述三个类的非空引用变量,关于以下语句说法正确的()。
if(tinstanceofPerson){
s=(Student)t;
A.将构造一个Student对象B.表达式合法
C.编译时非法D.编译时合法而在运行时可能非法
18.在//pointx处的哪个声明是合法的?
classPerson{
privaateinta;
publicintchange(intm){
returnm;
publicclassTeacherextendsPerson{
publicintb;
Personp=newPerson();
Teachert=newTeacher();
inti;
//pointx
A.i=m;
B.i=b;
C.i=p.aD.i=p.change(30);
19.下面关于继承的叙述哪些是正确的?
A.在Java中的类只允许继承一个类
B.在Java中一个类允许继承多个类
C.在Java中一个类不能同时继承一个类和实现一个接口
D.在Java中接口可以继承一个或多个接口
20.下列哪些方法与方法publicvoidadd(inta){}构成重载方法?
A.publicintadd(inta)B.publiclongadd(longa)
C.publicvoidadd(inta,intb)D.publicvoidadd(floata)
21.在Java语言中,类Cat是类Animal的子类,Cat的构造方法中有一句super(),该语句表达了什么含义?
A.调用类Cat中定义的super()方法
B.调用类Animal中定义的super()方法
C.调用类Animal的构造方法
D.语法错误
22.定义一个类名为Myclass.java的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为()。
A.privateclassMyClassextendsObject
B.classMyclassextendsObject
C.publicclassMyClassextendsObject
D.ProtectedclassMyClassextendsObject
23.关于下面的程序,以下哪个结论是正确的?
1.publicclassTest{
2.publicTest(){
3.System.out.print(“3”);
5.publicvoidTest(){
6.System.out.print(“2”);
7.}
9.Testt=newTest();
10.t.Test();
11.System.out.print(“1”);
13.}
A.程序可以通过编译并正常运行,输出结果为21
B.程序可以通过编译并正常运行,输出结果为31
C.程序可以通过编译并正常运行,输出结果为321
D.程序无法通过编译
24.给定如下Java程序:
classA{
publicA(){
System.out.print(“A”);
classBextendsA{
publicB(){
System.out.print(“B”)
publicstaticvoidmain(String[]args){
Bb=newB();
上述程序将()。
A.不能通过编译
B.通过编译,执行后输出为AB
C.通过编译,执行后输出为B
D.通过编译,执行后输出为A
25.已知MyInterface是一个接口,ClassA是实现了MyInterface的一个类,ClassB是ClassA的子类,则下列哪个语句是正确的?
A.ClassBobj=newClassA();
B.Myinterfaceobj=newClassB();
C.ClassAobj=newMyInterface();
D.MyInterfaceobj=newMyInterface();
26.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:
Aa0=newA();
Aa1=newB();
Aa2=newC();
以下哪个说法是正确的?
A.只有第1行能通过编译
B.第1行和第2行能通过编译,但第3行编译出错
C.第1~3行能通过编译,但第2行和第3行运行时出错
D.第1行、第2行和第3行的声明都是正确
27.考虑以下代码:
classC1{}
interfaceC2{}
classC3extendsC1implementsC2{}
classC4<
TextendsC1&
C2>
{}
则下列哪个语句是正确的?
A.C4<
C1>
c41=newC4<
();
B.C4<
C2>
c42=newC4<
C.C4<
C3>
c43=newC4<
D.C4<
T>
c44=newC4<
28.对于以下类:
classA{}
classBextendsA{}
classCextendsA{}
publicclassTest{
Ax=newA();
By=newB();
Cz=newC();
//此处插入一条语句
下面哪个语句可以放到插入行?
A.x=y;
B.z=x;
C.z=(c)y;
D.y=(a)y;
29.设有一个类的代码如下:
classOuter{
publicclassInner1{}
publicstaticclassInner2{}
则在另一个类的代码中,下列哪个语句是正确的?
A.Outer.Inner1obj=newOuter.Inner1();
B.Outer.Inner2obj=newOuter.Inner2();
C.Outer.Inner1obj=newOuter.Inner1().newInner1();
D.Outer.Inner2obj=newOuter().newInner2();
30.以下关于泛型的说法哪个是错误的?
A.泛型是通过类型参数来提高代码复用性的一种技术
B.通过在类名后增加类型参数可以定义具有泛型特点的类
C.通过在接口名后增加类型参数可以定义具有泛型特点的接口
D.一个泛型类只能有一个类型参数
2、程序阅读题
1.仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。
classOverload{
voidtestOverload(inti){
System.out.println(“int”);
voidtestOverload(Strings){
System.out.println(“String”);
Overloada=newOverload();
charch=’x’;
a.testOverload(ch);
2.仔细阅读下面的程序代码,请将划线上
(1)~(5)的语句补充完整。
abstractclassPerson{
privateStringname;
publicPerson(Stringn){
name=n;
public
(1)StringgetMajor();
publicString
(2)(){
returnname;
classStudent(3)Person{
private(4);
publicStudent(Stringn,Stringm){
super(n);
major=m;
publicString(5)(){
return”专业是:
”+major;
publicclassTestPerson{
Personp=newStudent(“张三”,”软件工程”);
System.out.println(p.getName()+”,”+p.getMajor());
3.写出下列程序代码的运行结果。
intm=1;
publicstaticvoidmain(Stringargs[]){
newDemo().some
(2);
classDemoextendsTest{
intm=3;
System.out.print(m);
System.out.print(super.m);
4.写出下列程序代码的运行结果。
intm=0,n=0;
longf(){
returnm+n;
intm=1,n=1;
longresult=0;
super.m=10;
super.n=30;
result=super.f()+(m+n);
returnresult;
longg(){
longresult=0;
result=super.f();
returnresult/2;
classExample{
b.m=6;
b.n=2;
longresultOne=b.g();
longresultTwo=b.f();
longresultThree=b.g();
System.out.println(“resultOne=”+resultOne);
System.out.println(“resultTwo=”+resultTwo);
System.out.println(“resultThree=”+resultThree);
5.下面的程序运行结果是什么?
classTree(){
classPineextendsTree()
classOakextendsTree()
publicclassForest{
publicstaticvoidmain(String[]args){
Treetree=newPine();
if(treeinstanceofPine)
System.out.println("
Pine"
);
if(treeinstanceofTree)
Tree"
if(treeinstanceofOak)
Oak"
else
Oops"
6.下面的程序运行结果是什么?
abstractclassBase{
abstractpublicvoidmyfunc();
publicvoidanother(){
System.out.println("
Anothermethod"
publicclassAbsextendsBase{
publicstaticvoidmain(Stringargs[]){
Baseb=newAbs();
b.another();
publicvoidmyfunc(){
MyFunc"
);
publicvoid