类的封装与继承习题题.docx
《类的封装与继承习题题.docx》由会员分享,可在线阅读,更多相关《类的封装与继承习题题.docx(14页珍藏版)》请在冰点文库上搜索。
类的封装与继承习题题
1.以下关丁继承的叙述正确的是(
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
2.有继承关系时用到的关键字是(A)。
(2分)
A:
extend
B:
extends
C:
implements
D:
implement
3:
Java变量中,以下不届丁复合类型的数据类型是(D)。
(2分)
A:
类
B:
字符型
C:
数组型
D:
接口
4:
java中定义数组名为abc,下面(B)可以得到数组元素的个数。
(2分)
A:
abc.length()
B:
abc.length
C:
len(abc)
D:
ubound(abc)
5:
下列说法正确的是(A)。
(2分)
A:
编译后的Java源程序根据文件中定义的类和接口的个数产生相应个数的.class
字节码文件。
B:
Java语言的源文件中不是任何地方都可以加注释的。
C:
一个文件中可以有多个访问权限为public的类。
D:
含有main()方法的类可以为public的类,也可以为其他类。
6:
在调用构造函数时(C)(2分)
A:
子类可以不加定义就使用父类的所有构造函数
B:
不管类中是否定义了何种构造函数,创建对象时都可以使用默认构造函数
C:
先调用父类的构造函数
D:
先调用形参多的构造函数
7:
Java与C/C++比较说法错误的是(D)。
(2分)
A:
Java不提供goto语句,所以也就没指定goto作为关键字。
B:
Java没有指针。
C:
Java没有联合和结构
D:
Java只有单继承没有多重继承。
8:
若需要定义一个类域或类方法,应使用(B)修饰符。
(2分)
A:
static
B:
package
C:
private
D:
public
9:
下列说法(C)是正确的。
(2分)
A:
程序执行到break语句是一定会结束所有的循环
B:
程序执行到continue语句时会结束当前循环
C:
break语句和continue语句都可以和标签协同使用
D:
continue语句和break语句的作用相同
10:
以下说法正确的是(D)。
(2分)
A:
每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默认的构造方法。
B:
如果类里定义了一个或多个构造方法,那么java也提供默认的构造方法
C:
每个Java类中用户必须定义至少一个构造方法。
D:
以上都不对
11:
对封装的理解正确的是(A)。
(3分)
A:
封装就是把对象的届性和行为结合成一个独立的单位。
B:
封装就是把对象完全隐蔽起来,不让外界访问。
C:
封装性是一个使用问题。
D:
封装和抽象是一回事。
12:
对成员的访问控制保护最强的是(C)。
(3分)
A:
public
B:
缺省
C:
private
D:
protected
13:
类Test1定义如下:
1.publicclassTest1(
2.publicfloataMethod(floata,floatb)(}
3.
3.}将以下(B)方法插入行3是不合法的。
(3分)
A:
publicfloataMethod(floata,floatb,floatc)(}
B:
publicfloataMethod(floatc,floatd)(}
C:
publicintaMethod(inta,intb)(}
D:
privatefloataMethod(inta,intb,intc)(}
14关丁构造函数的说法(B)正确。
(2分)
A:
一个类只能有一个构造函数
B:
一个类可以有多个不同名的构造函数
C:
构造函数与类同名
D:
构造函数必须自己定义,不能使用父类的构造函数
15:
关丁以下程序段,正确的说法是(D)。
1.Strings1=”abc”+”d2f”Strings2=newString(s1);3.if(s1==s2)
4.System.out.println(=“=succeeded”);5.if(s1.equals(s2))
6.System.out.println(".equals()succeeded分));(2
A:
程序将输出:
==succeeded
B:
程序将输出:
.equals()succeeded
C:
程序将输出:
==succeeded.equals()succeeded
D:
程序无输出
16:
关丁以下程序代码的说明正确的是(C)。
1.classHasStatic{2.privatestaticintx=100;3.publicstaticvoidmain(Stringargs[])(4.HasStatichs1=newHasStatic();5hs1.x++;6.HasStatichs2=newHasStatic();7.hs2.x++;8.hs1=newHasStatic();9hs1.x++;10.HasStatic.x--;11.System.out.println("x=+x};1132.}(2分)
A:
5行不能通过编译,因为引用了私有静态变量
B:
10行不能通过编译,因为x是私有静态变量
C:
程序通过编译,输出结果为:
x=103
D:
程序通过编译,输出结果为:
x=102
三、程序阅读题
1、以下程序的输出结果为Peteris17yearsold!
publicclassPerson(
Stringname;
intage;
publicPerson(Stringname,intage)(
this.name=name;this.age=age;
}
publicstaticvoidmain(String[]args)(
Personc=newPerson("Peter”,17);
System.out.println(c.name+"is"+c.age+"yearsold!
");}
}
2、以下程序的输出结果为_课程号:
101—课程名:
ASP_学
分:
_3o
publicclassCourse(
privateStringcNumber;
privateStringcName;
privateintcUnit;
intunit)(
课程名:
"+cName+"学
publicCourse(Stringnumber,Stringname,cNumber=number;
cName=name;
cUnit=unit;
}
publicvoidprintCourseInfo()(
System.out.println("课程号:
"+cNumber+分:
"+cUnit);
}
}classCourseTest(
publicstaticvoidmain(String[]args)(Coursec;
c=newCourse("101","ASP",3);
c.printCourseInfo();
3、以下程序的输出结果为
publicclassTom(
汤姆猫
name;
体重:
20斤
private
private
floatweight;
staticString
public
voidsetWeight(
float
weight)(
this.weight=weight;)
privatevoidout()(
System.out.println(
name
+"体重:
"+weight+"斤");
)
publicstaticvoidmain(String[]args)(Tom.name="汤姆猫";
Tomcat=newTom();
cat.setWeight(20);
cat.out();
)
)
4、以下程序的输出结果:
姓名:
Tom年龄:
15家庭住址:
金水区学校:
九中电话:
66123456
publicclassFather(
Stringname,address,tel;
intage;
publicFather(Stringname,this.name=name;this.age=age;
)
voidout()(
System.out.print("System.out.print("
)
voidoutOther()(
System.out.print("System.out.print("
intage)(
姓名:
"+name);
年龄:
"+age);
家庭住址:
"+address);电话:
"+tel);
classSonextendsFather(
Stringschool;
publicSon(Stringname,intage)(
super(name,age);
)
voidout()(
super.out();
super.outOther();
System.out.println("学校:
”+school);
)
publicstaticvoidmain(Stringargs[])(Sonson=newSon("Tom”,15);son.address="金水区";
son.school="九中";
son.tel="66123456";
son.out();
)
)
5、下列程序的运行结果是12345<
publicclassMyClass(inta[]=(1,2,3,4,5);
voidout()(
for(intj=0;j)
publicstaticvoidmain(String[]args)(MyClassmy=newMyClass();
my.out();
)
)
1、importjava.io.*;
publicclassabc
(
publicstaticvoidmain(Stringargs[])
(
ABs=newAB("Hello!
","IloveJAVA.");
System.out.println(s.toString());
}
}
classAB(
Strings1;
Strings2;
publicAB(Stringstr1,Stringstr2)
(
s1=str1;
s2=str2;
}
publicStringtoString()
(
returns1+s2;
}
}
运行结果:
Hello!
IloveJAVA._
2、importjava.io.*;
publicclassabc
(
publicstaticvoidmain(Stringargs[])
(inti,s=0;
inta[]=(10,20,30,40,50,60,70,80,90};for(i=0;iif(a[i]%3==0)s+=a[i];
System.out.println("s="+s);
}
}
运行结果:
_s=1803、importjava.io.*;
publicclassabc
(
publicstaticvoidmain(Stringargs[])
(
System.out.println("a="+a+"\nb="+b);
}
}
classSubClassextendsSuperClass
(intc;
SubClass(intaa,intbb,intcc)
(
super(aa,bb);
c=cc;
}
}
classSubSubClassextendsSubClass
(inta;
SubSubClass(intaa,intbb,intcc)
(super(aa,bb,cc);
A=aa+bb+cc;
}
voidshow()
(
System.out.println("a="+a+"\nb="+b+"\nc="+c);
}
}
运行结果:
a=60
b=20
c=30
1.以下程序的输出结果为相等
classStringTest1
(
publicstaticvoidmain(String[]args)(
Strings1="hello";
Strings2=newString("hello");
if(s1.equals(s2))(
System.out.println("相等");
}else(
System.out.println("不相等");
}
}
}
2.以下程序段的输出结果为56789
publicclassTestArray
(
publicstaticvoidmain(Stringargs[])(
inti,j;
inta[]=(5,9,6,8,7};
for(i=0;ifor(j=i;jinttemp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(i=0;iSystem.out.print(a[i]+"");
System.out.println();
}
}
3.写出以下程序的功能。
importjava.io.*;
publicclassTestFile(
publicstaticvoidmain(Stringargs[])throwsException
(
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
BufferedWriterbw=newBufferedWriter(newFileWriter(input.txt"));
Strings;
while(true)
(
System.out.print("请输入一个字符申:
");
System.out.flush();
s=br.readLine();
if(s.length()==0)break;
bw.write(s);
bw.newLine();
}
bw.close();
}
}
功能:
判断输入字符申是否等于input.txt文件中的字符申
4.阅读以下程序,写出输出结果。
classAnimal(
Animal()(
System.out.print("Animal");}
}
publicclassDogextendsAnimal(
Dog()(
System.out.print("Dog");}
publicstaticvoidmain(String[]args)(Dogsnoppy=newDog();}
}
输出结果:
_AnimalDog_
五、程序设计题
1、按以下要求编写程序
(1)创建一个Rectangle类,添加width和height两个成员变量
⑵在Rectangle中添加两种方法分别计算矩形的周长和面积
(3)编程利用Rectangle输出一个矩形的周长和面积
解答:
packagetrainings;
//
(1)创建一个Rectangle类,添加width和height两个成员变量
//
(2)在Rectangle中添加两种方法分别计算矩形的周长和面积
//(3)编程利用Rectangle输出一个矩形的周长和面积
publicclassRectangle(
privateintwidth;
privateintheight;
publicRectangle(intwidth,intheight)(this.width=width;
this.height=height;
)
publicvoidsquare()(
intsquare;
square=width*height;
System.out.println("面积:
"+square);
)
publicvoidzhouc()(
intzhouc;
zhouc=2*(width+height);
System.out.println("周长;"+zhouc);
)
publicstaticvoidmain(Stringargs[])(
Rectanglejux=newRectangle(3,5);jux.square();
jux.zhouc();
)