JAVA基础第3章类与对象练习题.docx
《JAVA基础第3章类与对象练习题.docx》由会员分享,可在线阅读,更多相关《JAVA基础第3章类与对象练习题.docx(20页珍藏版)》请在冰豆网上搜索。
JAVA基础第3章类与对象练习题
第3章
类与对象
一.选择题
1.下列不属于面向对象编程的特性是(
A.封装性B.继承性
2.下列类的声明中不合法的是(
A.classPeople{…}
C.ClassA{…}
3.下列方法的声明中不合法的是
A.floatarea(){…}
C.doublearea(d){…}
D)。
C.
多态性
D.编译执行
C)。
B.class
D.publicclass
C)。
植物{…}
共有类{…
B.voidarea(){…}
D.intarea(intr){…}C)。
4.下列构造方法(构造器)的调用中正确的是(
A.按照一般的方法调用B.由用户直接调用
C.只能通过new自动调用D.被系统调用
5.下列程序运行的结果是(A)。
classBook{
intwidth;
intlength;
}
publicclassA{
staticvoidf(Bookp){p.width=20;p.length=40;
}
publicstaticvoidmain(Stringargs[]){Bookb=newBook();b.width=10;
b.length=20;
f(b);
System.out.print(""+b.width);
System.out.print(""+b.length);
}
}
A.2040
6.下列程序运行的结果是(D)。
publicclassA{
staticvoidf(inty){
y=y+10;
}
publicstaticvoidmain(Stringargs[]){doublex=10;f(x);
System.out.println(x);
B.1040
C.1020
D.以上都不对
A.
10B.20
7.下列程序运行的结果是(0。
PublicclassA{
intz=20;
staticvoidf(inty){
y=z;
System.out.println(y);
}
publicstaticvoidmain(Stringargs[]){f(10);
8.以下代码的输出结果为(C)。
publicclassPass{staticintj=20;
publicstaticvoidmain(Stringargs[]){inti=10;
Passp=newPass();
p.amethod(i);
System.out.println(i+"and"+j);}publicvoidamethod(intx){
x=x*2;j=j*2;
}
}
A.错误:
方法参数与变量不匹配
B.20and40
C.10and40
D.10and20
9.
A)。
编译和运行程序会出现什么样的结果(
PublicclassRef{
publicstaticvoidmain(Stringargs[]){
Refr=newRef();
r.amethod(r);
}
publicvoidamethod(Refr){inti=99;
multi(r);
System.out.println(i);
}
publicvoidmulti(Refr){
r.i=r.i*2;
10.
}
}
A.编译出错B.输出:
99
关于以下程序代码的说明正确的是(
1.classHasStatic{
2.
D)。
11.
12.
1
2
C.输出:
198
D.运行出错
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.}
A.
B.
C.
D.
staticintx=100;inty=0;
publicstaticvoidmain(Stringargs[]){
HasStatichs1=newHasStatic();hs1.x++;
HasStatichs2=newHasStatic();hs2.x++;
hs1=newHasStatic();hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
5行不能通过编译,因为引用了私有静态变量10行不能通过编译,因为程序通过编译,输出结果为:
程序通过编译,输出结果为:
x是私有静态变量
x=103
x=102
有如下代码:
publicclassTest{
voidprintValue(intm){do{
System.out.println("Thevalueis"+m);}while(--m>10);
}
publicstaticvoidmain(Stringarg[]){inti=10;
Testt=newTest();t.printValue(i);
}
}
其输出结果是什么(C)。
A.Thevalueis8
C.Thevalueis10以下代码的调试结果为(D)。
.publicclassQ21
.{
B.Thevalueis9
D.Thevalueis11
intmaxElements;
voidQ21()
{
maxElements=100;
System.out.pnntln(maxElements);
}
C.
未初始化
第3行出现编译错误,变量maxElements
D.第19行出现编译错误
13.给出如下类定义:
Publicclasstest{
test(intk){…}
B)。
B.testobj1=newtest(5);
D.testobj1=newtest(3.4);publicvoidadd(inta){…}重载(A)。
}
如果要创建一个该类的对象,正确的语句是(
A.testobj1=newtest();
C.testobj1=newtest("5");
14.指出下列哪个方法不能与方法
A.publicintadd(intb)
B.publicvoidadd(doubleb)
C.publicvoidadd(inta,intb)
D.
C)。
publicvoidadd(floatg)
15.下面程序的输出结果是什么(
classJ_Test{
intm_i=2;
Stringm_s=null;
J_Test(){
m_i=3;
m_s="constructor";
}
publicstaticvoidmain(Stringargs[]){
J_Testapp=newJ_Test();
System.out.println(app.m_i+app.m_s);
}
}
A.2nullB.3null
16.下面程序的输出结果是什么(
C.3constructor
D.以上都不对
A)。
classJ_Test{
intm_i=2;
Stringm_s=null;
voidJ_Test(){
m_i=3;
m_s="constructor";
}
publicstaticvoidmain(Stringargs[]){
J_Testapp=newJ_Test();
System.out.println(app.m_i+app.m_s);
17.下列代码的运行结果是(D)。
publicclassJ_Test{
staticshortm_index;
staticintm_age;
publicstaticvoidmb_setData(longn){
m_index=n;
}
publicstaticvoidmain(Stringargs[]){
mb_setData(98);
System.out.println("lndex="+m_index+";Age="+m_age);
}
B.Index=0;Age=0
D.以上都不对
}
A.Index=98;Age=0
C.Index=0;Age=98
18.下列程序的运行结果为(B)。
publicclassJ_Test{
staticcharm_name;
staticintm_age;
publicstaticvoidmb_setData(charn){
m_name=n;
}
publicstaticvoidmb_setData(intn){
m_age=n;
}
publicstaticvoidmain(Stringargs[]){mb_setData((int)'');mb_setData((char)98);
System.out.printin("Name="+m_name+";Age="+m_age);
}
B.Name=b;Age=97
D.以上都不对
}
A.Name=98Age=97
C.Name=97;Age=B
19.程序的运行结果为(A)
publicclassJ_Test{
staticshortm_index;
staticintm_age;
publicstaticvoidmb_setData(shortn){
m_index=n;
}
publicstaticvoidmb_setData(intn){
m_age=n;
}
publicstaticvoidmain(Stringargs[]){
mb_setData(98);
System.out.println("lndex="+m_index+";Age="+m_age);
}
}
B.Index=98;Age=0
D.以上都不对
)
Circle和主类A。
A.Index=0;Age=98C.Index=0;Age=0
二.编程题(温馨提示:
编程时尽量不要使用中文标识符。
Lader类具有类型为double的上底、下底、高、包括一个构造方法对上底、下底、高进行初始化。
Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。
创建主类,用来测试类Lader和类Circle的功能。
1.编写一个Java应用程序,该程序中有3个类:
Lader、具体要求如下:
面积属性,具有返回面积的功能,
2)
1)
3)
1.classLader{
double上底,下底,高,面积;
Lader(doublea,doubleb,doubleh){
上底=a;
下底=b;
高=h;
}
doublegetArea(){
//将计算结果存放在对象的成员变量里面,且作为函数值返回。
面积=(上底+下底)*高/2;
return面积;
}
classCircle{
double半径,周长,面积;
Circle(doubler){
半径=r;
}
doublegetLength(){
周长=3.14*2*半径;
return周长;
}
doublegetArea(){
面积=3.14*半径*半径;return面积;
}
}
classOne{
年龄;具有行为:
显示姓名、喊叫。
publicstaticvoidmain(String[]args){Laderla=newLader(3,4,2);la.getArea();//System.out.println("
Circlecr=newCircle
(1);System.out.println("System.out.println("
}
}
2.建立一个名叫Cat的类,具有属性:
姓名、毛色、
编写主类,在主类中创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
2.classCat{
Stringname;
Stringcolor;
intage;
voidshowName(){
System.out.println(name);
}
voidcry(){
System.out.printin(”喵喵");
}
}
publicclassTwo{
publicstaticvoidmain(String[]args){
Catc=newCat();
c.name="妮妮";
c.color="灰色";
c.age=2;
System.out.println("color="+c.color);
System.out.println("age="+c.age);
c.showName();
c.cryO;
}
}
3.创建一个叫做Peopie的类,具有属性:
姓名、年龄、性别、身高;具有行为:
说话、计算加法、改名;还有能为所有属性赋值的构造方法。
创建主类,在主类中创建一个对象:
名叫“张三”,性别“男”,年龄18岁,身高1.80;让该对象调用成员方法:
说出“你好!
”,计算23+45的值,并将名字改为“李四”。
3.classPeople{
Stringname;
intage;
charsex;
floatheight;
PeopIe(Stringn,inta,chars,floath){name=n;
age=a;
sex=s;
height=h;
}
voidspeak(Strings){
System.out.println(s);
}
doubleadd(doublex,doubley){
returnx+y;
}
voidrename(Stringm){
name=m;
}
}
publicclassThree{
publicstaticvoidmain(String[]args){
Peoplezhang3=newPeopie(”张三",18,'男',1.80f);
zhang3.speak(”你好!
");
System.out.println("23+45="+zhang3.add(23,45));
zhang3.rename(”李四");
System.out.println(zhang3.name);
}
}
4.创建一个叫做机动车的类:
属性:
车牌号(String),车速(int),载重量(double)。
功能:
加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。
编写两个构造方法:
一个没有形参,在方法中将车牌号设置“XX1234”,速度设置
为100,载重量设置为100;另一个能为对象的所有属性赋值。
创建主类:
创建两个机动车对象。
创建第一个时调用无参数的构造方法,调用成员方
法使其车牌为“辽A9752”,并让其加速。
创建第二个时调用有参数的构造方法,使其车牌为“辽B5086”,车速为
150,载重为200,并让其减速。
输出两辆车的所有信息。
4.classVehicle{
Stringid;
intspeed;
doubleload;
voidupSpeed(){
++speed;
}
voiddownSpeed(){
--speed;
}
voididChanging(Stringi){
id=i;
}
doubleshowLoad(){
returnload;
}
Vehicle(){
id="XX1234";
speed=100;load=100;
}
Vehicle(Stringi,ints,doublel){
id=i;
speed=s;load=l;
}
}
publicclassFour{
publicstaticvoidmain(String[]args){
Vehiclev1=newVehicle();
v1.idChanging(”辽A9752");
v1.upSpeed();
辽B5086",150,200);
Vehiclev2=newVehicle("
v2.downSpeed();
System.out.printin(v1.id+","+v1.speed+","+v1.load);
System.out.println(v2.id+","+v2.speed+","+v2.load);
}
}
5.创建一个point类,有成员变量x、y,方法getX()、setX(),还有一个构造方法用于初
始化x和y。
创建主类来测试它。
5.classPoint{
doublex,y;
Point(doublex,doubley){
this.x=x;this.y=y;
}
publicdoublegetX(){returnx;
}
publicvoidsetX(doublex){this.x=x;
}
}
publicclassFive{
publicstaticvoidmain(String[]args){Pointp=newPoint(1,2);
p.setX(3);
System.out.println(p.getX());
}
}
6.创建一个三角形类,有成员变量三条边,有方法求周长,创建主类来测试它。
6.classTriangle{
doublea,b,c;
doublegetLength(){
returna+b+c;
}
}
PublicclassSix{
publicstaticvoidmain(String[]args){
Trianglet=newTriangle();
t.a=2;
t.b=3;
t.c=4;
System.out.printin(”周长="+t.getLength());
}
}
7.编写Java应用程序。
首先,定义一个Print类,它有一个方法voidoutput(intx)
1)如果x的值是1,在控制台打印出大写的英文字母;
2)如果x的值是2,在控制台打印出小写的英文字母。
其次,再定义一个主类,在主类的main方法中创建Print类的对象,使用这个对象调
用方法output()来打印出大小写英文字母。
7.classPrint{
voidoutput(intx){
charc;
if(x==1){for(c='A';c<='Z';c++)
System.out.print(c);
}
if(x==2){
for(c='a';c<='z';c++)
System.out.print(c);
}
System.out.println();
}
}
publicclassSeven{
publicstaticvoidmain(String[]args){
Printp=newPrint();
p.output
(1);
p.output
(2);
}}
8.编写Java应用程序。
首先定义一个描述银行账户的Account类,包括成员变量“账号”
和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。
其次,编写一个主类,在主类中测试Account类的功能。
classAccount{
Stringid;
doublemoney;
voidsave(doublex){
money=money+x;
}
voidget(doubley){
money=money-y;
}voidselect(){
余额="+money);
System.out.println("
}}
publicclassEight{publicstaticvoidmain(String[]args){Accountkaien=newAccount();kaien.save(10000);kaien.get(200);
kaien.select();
}
9.编写Java应用程序。
首先,定义一个时钟类Clock,它包括三个int型成员变量
分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒)进行初始化,还有一个成员方法show()用于显示时钟对象的时间。
其次,再定义一个主类,在主类的main方法中创建多个时钟类的对象,使用这些对象调用方法show()来显示时钟的时
间。
9.classClock{
inthour,second,minute;
Clock(inth,ints,intm){
hour=h;
minute=m;second=s;
}
voidshow(){System.out.println(hour+":
"+minute+":
"+second);
}
}
publicclassNine{
publicstaticvoidmain(String[]args){
Clockc1=newClock(21,16,30);
c1.show();
Clockc2=newClock(12,12,12);
c2.show();
Clockc3=newClock(3,3,3);
c3.show();
}
}
10.编写Java应用程序。
首先,定义描述学生的类Student,包括学号