Java面向对象编程练习题答案0doc.docx
- 文档编号:29224994
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:42
- 大小:55.18KB
Java面向对象编程练习题答案0doc.docx
《Java面向对象编程练习题答案0doc.docx》由会员分享,可在线阅读,更多相关《Java面向对象编程练习题答案0doc.docx(42页珍藏版)》请在冰豆网上搜索。
Java面向对象编程练习题答案0doc
【练习题】01.类的成员变量:
猜数字游戏:
一个类A有一个成员变量v,有一个初值100。
定义一个类,对A类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
importjava.util.*;
classA{
intv=100;
A(){
this.v=v;
}
}
publicclassb01
{
publicstaticvoidmain(Stringargs[]){
Aa=newA();
Scannerintput=newScanner(System.in);
intintputvalue=intput.nextlnt();
if(intputvalue>a.v)
System.out.println("你的输入大于这个值");
if(intputvalue System.out.println("你的输入小于这个值"); if(intputvalue==a.v) System.out.println("猜测成功"); } } 【练习题】02.类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性: 速度(speed),体积(size)等等 方法: 移动(move()),设置速度(setSpeed(intspeed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。 另外,调用加速,减速的方法对速度进行改变。 classVehicle {intspeed; intsize; voidmove(){ }; voidsetSpeed(intspeed){ this.speed=speed; } voidspeedUp(){ speed=speed+1; this.speed=speed; } voidspeedDown(){ speed=speed-1; this.speed=speed; } } publicclassb01 {publicstaticvoidmain(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) 分别对时、分、秒进行加减运算。 classMyTime { privateinthour; 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<=23&hour>=0&minute<=59&minute>=0&second<=59&second>=0) System.out.println("\nTrue\n"); else System.out.println("\nFalse\n"); } } publicclassb01 { publicstaticvoidmain(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类的对象,调用各个方法,并显示计算结果。 classNumber { privateintn1; 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); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ Numbernum=newNumber(6,3); num.division(); } } 【练习题】05.构造方法: 编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。 定义构造方法,用来初始化数据成员。 再定义显示(display)方法,将姓名和年龄打印出来。 在main方法中创建人类的实例,然后将信息显示。 classPerson { privateStringname; privateintage; publicPerson(Stringname,intage){ this.name=name; this.age=age; } voiddisplay(){ System.out.println("姓名——>"+name+"\n年龄——>"+age); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ Personper=newPerson("奥巴马",20); per.display(); } } 【练习题】06.get方法和set方法 定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法 提示: 假设有privateStringname;则有 publicvoidsetName(Stringname){ this.name=name; } publicStringgetName(){ returnthis.name; } classPerson { privateStringname; publicPerson(Stringn){ this.setName(n); } publicvoidsetName(Stringn){ name=n; } publicStringgetName(){ returnname; } publicvoidgetInfo(){ System.out.println("名字: "+name); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ Personper=newPerson("奥巴马"); per.getName(); per.getInfo(); } } 【练习题】07.构造方法与重载 为“无名的粉”写一个类: classWuMingFen要求: 1.有三个属性: 面码: StringtheMa粉的分量(两): intquantity 是否带汤: booleanlikeSoup 2.写一个构造方法,以便于简化初始化过程,如: WuMingFenf1=newWuMingFen("牛肉",3,true); 3.重载构造方法,使得初始化过程可以多样化: WuMingFenf2=newWuMingFen("牛肉",2); 4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的? WuMingFenf3=newWuMingFen(); 5.写一个普通方法: check(),用于查看粉是否符合要求。 即: 将对象的三个属性打印在控制台上。 classWuMingFen { StringtheMa; 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); } } publicclassb01 { publicstaticvoidmain(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方法中测试以上各类。 classVehicles { privateStringbrand; privateStringcolor; publicVehicles(Stringbrand,Stringcolor){ this.brand=brand; this.color=color; } voidrun(){ System.out.println("我已经开动了"); } voidshowInfo(){ System.out.println("商标: "+brand+"\n颜色: "+color); } } classCarextendsVehicles { privateintseats; publicCar(Stringbrand,Stringcolor,intseats){ super(brand,color); this.seats=seats; } voidshowCar(){ super.showInfo(); System.out.println("座位: "+seats); } } classTruckextendsVehicles{ privatefloatload; publicTruck(Stringbrand,Stringcolor,floatload){ super(brand,color); this.load=load; } voidshowTruck(){ super.showInfo(); System.out.println("载重: "+load); } } publicclassb01 { publicstaticvoidmain(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加上字符串"@" classNetUser { privateStringID; privateStringkey; privateStringemailDress; publicNetUser(StringID,Stringkey){ this.ID=ID; this.key=key; this.emailDress=ID+"@"; } voidoutput(){ System.out.println("ID: "+ID+"\n用户密码"+key+"\n用户地址"+emailDress); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ NetUseruser=newNetUser("5566","yan"); user.output(); } } 【练习题】10.构造方法与重载、包 编写Addition类,该类中应包含一组实现两数相加运算的重载方法。 实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。 考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。 在main方法中创建Addition类的实例,分别调用重载方法测试其效果。 应将Addition类打入到包中,以自己名字的拼音为包命名。 packageyan.cong; classAddition{ publicAddition(){ } 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); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ Additionm=newAddition(); Additionn=newAddition(); m.add(5,6); n.add("hello","world"); } } 【练习题】11.构造方法与重载 将上次练习题三中编写的MyTime类打到以自己名字的拼音命名的包中,并为该类重载一组构造方法,以方便使用者能够以多种形式初始化该类的实例。 packageyan.cong; classMyTime { privateinthour; 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<=23&hour>=0&minute<=59&minute>=0&second<=59&second>=0) System.out.println("\nTrue\n"); else System.out.println("\nFalse\n"); } } publicclassb01 { publicstaticvoidmain(Stringargs[]){ MyTimeb=newMyTime(11,4,55); b.subHour(5); b.subMinute(5); b.subSecond (2); b.diaplay(); b.Test(); } } 【练习题】12.构造方法与重载 建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。 并通过不同的构造方法创建事例。 至少要求: 汽车能够加速,减速,停车。 要求: 命名规范,代码体现层次,有友好的操作提示。 classCar { privateinttires; 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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 编程 练习题 答案 doc