Java面向对象编程练习题问题详解0.docx

上传人:b****6 文档编号:7107628 上传时间:2023-01-18 格式:DOCX 页数:35 大小:55.16KB
下载 相关 举报
Java面向对象编程练习题问题详解0.docx_第1页
第1页 / 共35页
Java面向对象编程练习题问题详解0.docx_第2页
第2页 / 共35页
Java面向对象编程练习题问题详解0.docx_第3页
第3页 / 共35页
Java面向对象编程练习题问题详解0.docx_第4页
第4页 / 共35页
Java面向对象编程练习题问题详解0.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Java面向对象编程练习题问题详解0.docx

《Java面向对象编程练习题问题详解0.docx》由会员分享,可在线阅读,更多相关《Java面向对象编程练习题问题详解0.docx(35页珍藏版)》请在冰豆网上搜索。

Java面向对象编程练习题问题详解0.docx

Java面向对象编程练习题问题详解面向对象编程练习题问题详解0【练习题】01.类的成员变量:

猜数字游戏:

一个类A有一个成员变量v,有一个初值100。

定义一个类,对A类的成员变量v进行猜。

如果大了则提示大了,小了则提示小了。

等于则提示猜测成功。

importjava.util.*;classAintv=100;A()this.v=v;publicclassb01publicstaticvoidmain(Stringargs)Aa=newA();Scannerintput=newScanner(System.in);intintputvalue=intput.nextlnt();if(intputvaluea.v)System.out.println(你的输入大于这个值);if(intputvaluea.v)System.out.println(你的输入小于这个值);if(intputvalue=a.v)System.out.println(猜测成功);【练习题】02.类的成员变量:

请定义一个交通工具(Vehicle)的类,其中有:

属性:

速度(speed),体积(size)等等方法:

移动(move(),设置速度(setSpeed(intspeed),加速speedUp(),减速speedDown()等等.最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。

另外,调用加速,减速的方法对速度进行改变。

classVehicleintspeed;intsize;voidmove();voidsetSpeed(intspeed)this.speed=speed;voidspeedUp()speed=speed+1;this.speed=speed;voidspeedDown()speed=speed-1;this.speed=speed;publicclassb01publicstaticvoidmain(Stringargs)Vehiclea=newVehicle();a.setSpeed(55);a.size=80;a.speedUp();System.out.println(Speed:

+a.speed+nsize:

+a.size);【练习题】03.类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。

那么,我们可以自己实现一个时间类,来满足程序中的需要。

定义名为MyTime的类,其中应有三个整型成员:

时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。

为MyTime类定义构造方法,以方便创建对象时初始化成员变量。

再定义diaplay方法,用于将时间信息打印出来。

为MyTime类添加以下方法:

addSecond(intsec)addMinute(intmin)addHour(inthou)subSecond(intsec)subMinute(intmin)subHour(inthou)分别对时、分、秒进行加减运算。

classMyTimeprivateinthour;privateintminute;privateintsecond;publicMyTime(inthour,intminute,intsecond)this.hour=hour;this.minute=minute;this.second=second;voiddiaplay()System.out.println(时间:

+hour+:

+minute+:

+second);voidaddSecond(intsec)second=second+sec;voidaddMinute(intmin)minute=minute+min;voidaddHour(inthou)hour=hour+hou;voidsubSecond(intsec)second=second-sec;voidsubMinute(intmin)minute=minute-min;voidsubHour(inthou)hour=hour-hou;voidTest()if(hour=0&minute=0&second=0)System.out.println(nTruen);elseSystem.out.println(nFalsen);publicclassb01publicstaticvoidmain(Stringargs)MyTimeb=newMyTime(11,4,55);b.subHour(5);b.subMinute(5);b.subSecond

(2);b.diaplay();b.Test();【练习题】04.构造方法编写Java程序,模拟简单的计算器。

定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。

编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。

在main方法中创建Number类的对象,调用各个方法,并显示计算结果。

classNumberprivateintn1;privateintn2;publicNumber(intn1,intn2)this.n1=n1;this.n2=n2;voidaddition()intequal=n1+n2;System.out.println(n1+n2=+equal);voidsubtration()intequal=n1-n2;System.out.println(n1-n2=+equal);voidmultiplication()intequal=n1*n2;System.out.println(n1*n2=+equal);voiddivision()intequal=n1/n2;System.out.println(n1/n2=+equal);publicclassb01publicstaticvoidmain(Stringargs)Numbernum=newNumber(6,3);num.division();【练习题】05.构造方法:

编写Java程序,用于显示人的和年龄。

定义一个人类(Person),该类中应该有两个私有属性,(name)和年龄(age)。

定义构造方法,用来初始化数据成员。

再定义显示(display)方法,将和年龄打印出来。

在main方法中创建人类的实例,然后将信息显示。

classPersonprivateStringname;privateintage;publicPerson(Stringname,intage)this.name=name;this.age=age;voiddisplay()System.out.println(+name+n年龄+age);publicclassb01publicstaticvoidmain(Stringargs)Personper=newPerson(奥巴马,20);per.display();【练习题】06.get方法和set方法定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法提示:

假设有privateStringname;则有publicvoidsetName(Stringname)this.name=name;publicStringgetName()returnthis.name;classPersonprivateStringname;publicPerson(Stringn)this.setName(n);publicvoidsetName(Stringn)name=n;publicStringgetName()returnname;publicvoidgetInfo()System.out.println(名字:

+name);publicclassb01publicstaticvoidmain(Stringargs)Personper=newPerson(奥巴马);per.getName();per.getInfo();【练习题】07.构造方法与重载为“无名的粉”写一个类:

classWuMingFen要求:

1.有三个属性:

面码:

StringtheMa粉的分量(两):

intquantity是否带汤:

booleanlikeSoup2.写一个构造方法,以便于简化初始化过程,如:

WuMingFenf1=newWuMingFen(牛肉,3,true);3.重载构造方法,使得初始化过程可以多样化:

WuMingFenf2=newWuMingFen(牛肉,2);4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的?

WuMingFenf3=newWuMingFen();5.写一个普通方法:

check(),用于查看粉是否符合要求。

即:

将对象的三个属性打印在控制台上。

classWuMingFenStringtheMa;intquantitu;booleanlikeSoup;publicWuMingFen()publicWuMingFen(StringtheMa,intquantitu)this.theMa=theMa;this.quantitu=quantitu;publicWuMingFen(StringtheMa,intquantitu,booleanlikeSoup)this(theMa,quantitu);this.likeSoup=likeSoup;publicvoidcheck()System.out.println(面码:

+theMa+n粉的份量:

+quantitu+n是否带汤:

+likeSoup);publicclassb01publicstaticvoidmain(Stringargs)WuMingFenf1=newWuMingFen(牛肉,3,true);WuMingFenf2=newWuMingFen(牛肉,2);WuMingFenf3=newWuMingFen();f1.check();f2.check();f3.check();【练习题】08.构造方法的重载:

定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。

编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。

编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。

在main方法中测试以上各类。

classVehiclesprivateStringbrand;privateStringcolor;publicVehicles(Stringbrand,Stringcolor)this.brand=brand;this.color=color;voidrun()System.out.println(我已经开动了);voidshowInfo()System.out.println(商标:

+brand+n颜色:

+color);classCarextendsVehiclesprivateintseats;publicCar(Stringbrand,Stringcolor,intseats)super(brand,color);this.seats=seats;voidshowCar()super.showInfo();System.out.println(座位:

+seats);classTruckextendsVehiclesprivatefloatload;publicTruck(Stringbrand,Stringcolor,floatload)super(brand,color);this.load=load;voidshowTruck()super.showInfo();System.out.println(载重:

+load);publicclassb01publicstaticvoidmain(Stringargs)Vehiclesf1=newVehicles(宝马,白色);Carf2=newCar(法拉利,黑色,4);Truckf3=newTruck(解放,绿色,5000);f1.run();f1.showInfo();f2.run();f2.showCar();f3.run();f3.showTruck();【练习题】09.构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。

在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串gameschool.classNetUserprivateStringID;privateStringkey;privateStringemailDress;publicNetUser(StringID,Stringkey)this.ID=ID;this.key=key;this.emailDress=ID+gameschool.;voidoutput()System.out.println(ID:

+ID+n用户密码+key+n用户地址+emailDress);publicclassb01publicstaticvoidmain(Stringargs)NetUseruser=newNetUser(5566,yan);user.output();【练习题】10.构造方法与重载、包编写Addition类,该类中应包含一组实现两数相加运算的重载方法。

实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。

考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。

在main方法中创建Addition类的实例,分别调用重载方法测试其效果。

应将Addition类打入到包中,以自己名字的拼音为包命名。

packageyan.cong;classAdditionpublicAddition()voidadd(inta,intb)intc=a+b;System.out.println(a+b=+c);voidadd(longa,longb)longc=a+b;System.out.println(a+b=+c);voidadd(floata,floatb)floatc=a+b;System.out.println(a+b=+c);voidadd(doublea,doubleb)doublec=a+b;System.out.println(a+b=+c);voidadd(Stringa,Stringb)Stringc=a+b;System.out.println(a+b=+c);publicclassb01publicstaticvoidmain(Stringargs)Additionm=newAddition();Additionn=newAddition();m.add(5,6);n.add(hello,world);【练习题】11.构造方法与重载将上次练习题三中编写的MyTime类打到以自己名字的拼音命名的包中,并为该类重载一组构造方法,以方便使用者能够以多种形式初始化该类的实例。

packageyan.cong;classMyTimeprivateinthour;privateintminute;privateintsecond;publicMyTime(inthour,intminute,intsecond)this.hour=hour;this.minute=minute;this.second=second;publicMyTime(intminute,intsecond)this.minute=minute;this.second=second;voiddiaplay()System.out.println(时间:

+hour+:

+minute+:

+second);voidaddSecond(intsec)second=second+sec;voidaddMinute(intmin)minute=minute+min;voidaddHour(inthou)hour=hour+hou;voidsubSecond(intsec)second=second-sec;voidsubMinute(intmin)minute=minute-min;voidsubHour(inthou)hour=hour-hou;voidTest()if(hour=0&minute=0&second=0)System.out.println(nTruen);elseSystem.out.println(nFalsen);publicclassb01publicstaticvoidmain(Stringargs)MyTimeb=newMyTime(11,4,55);b.subHour(5);b.subMinute(5);b.subSecond

(2);b.diaplay();b.Test();【练习题】12.构造方法与重载建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。

并通过不同的构造方法创建事例。

至少要求:

汽车能够加速,减速,停车。

要求:

命名规,代码体现层次,有友好的操作提示。

classCarprivateinttires;privateStringcolor;privateintload;publicCar(inttires)this.tires=tires;System.out.println(轮胎个数:

+tires);publicCar(Stringcolor)this.color=color;System.out.println(汽车颜色:

+color);publicCar(inttires,Stringcolor,intload)this(tires);this.color=color;System.out.println(汽车颜色:

+color);this.load=load;System.out.println(汽车重量:

+load);voidupSpeed()System.out.println(车正在加速);voiddownSpeed()System.out.println(车正在减速);voidstop()System.out.println(车已经停止了);publicclassb01publicstaticvoidmain(Stringargs)Cara=newCar(6);Carb=newCar(4,白色,4000);a.upSpeed();b.stop();【练习题】13.构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作:

1、传递两个整数值并找出其中较大的一个值2、传递三个double值并求出其乘积3、传递两个字符串值并检查其是否相同4、在main方法中测试构造函数的调用classCheckpublicCheck(inta,intb)intc=Math.max(a,b);System.out.println(较大值为:

+c);publicCheck(doublea,doubleb,doublec)doubled=a*b*c;System.out.println(a*b*c=+d);publicCheck(Stringa,Stringb)booleanc=a.equals(b);System.out.println(两字符串相等:

+c);publicclassb01publicstaticvoidmain(Stringargs)Checkm=newCheck(4,8);Checkn=newCheck(3.3,4.2,4.0);Checkp=newCheck(ac,ab);【练习题】14.Static关键字与普通变量的区别:

创建一个名称为StaticDemo的类,并声明一个静态变量和一个普通变量。

对变量分别赋予10和5的初始值。

在main()方法中输出变量值。

classStaticDemoprivatestaticinta=10;privateintb=5;publicStringgetInfo()returna=+a+nb=+b;publicclassb01publicstaticvoidmain(Stringargs)StaticDemom=newStaticDemo();System.out.println(m.getInfo();【练习题】15.继承:

packageMainPackage;classMainClassStringstr;publicMainClass(Stringstr)this.str=str;System.out.println(str);classMainSubClassextendsMainClasspublicMainSubClass(Stringstr)super(str);System.out.println(*);importMainPackage.MainSubClass;classSamePackageMainSubClassb=newMainSubClass(a;ledkfjl);【练习题】16.包、继承、构造函数创建一个名称为MainPackage的包,使它包含MainClass和MainSubClass类。

MainClass类应当包含变量声明,其值从构造方法中输出。

MainSubClass类从MainClass派生而来。

试执行下列操作:

创建一个名称为SamePackage的类,使它导入上述包,并创建一个MainSubClass类的对象。

【练习题】17.继承:

创建一个父类和子类,父类有一个数据成员,子类继承父类的该数据成员,通过构造函数初始化并显示该数据成员的值。

classFatherinta;publicFather(inta)this.a=a;classSonextendsFatherpublicSon(inta)super(a);System.out.println(a=+a);p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1