还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
【练习题】
01.类的成员变量猜数字游戏一个类A有一个成员变量v,有一个初值100定义一个类,对A类的成员变量v进行猜如果大了则提示大了,小了则提示小了等于则提示猜测成功classA{intv=100;A{this.v=v;}}publicclassb01{publicstaticvoidmainStringargs[]{Aa=newA;Scannerintput=newScannerSystem.in;intintputvalue=intput.nextlnt;ifintputvaluea.vifintputvaluea.vifintputvalue==a.v}}【练习题】
02.类的成员变量请定义一个交通工具Vehicle的类,其中有:属性速度speed,体积size等等方法移动move,设置速度setSpeedintspeed,加速speedUp减速speedDown等等.最后在测试类Vehicle中的main中实例化一个交通工具对象,并通过方法给它初始化speedsize的值,并且通过打印出来另外,调用加速,减速的方法对速度进行改变classVehicle{intspeed;intsize;voidmove{};voidsetSpeedintspeed{this.speed=speed;}voidspeedUp{speed=speed+1;this.speed=speed;}voidspeedDown{speed=speed-1;this.speed=speed;}}publicclassb01{publicstaticvoidmainStringargs[]{Vehiclea=newVehicle;a.setSpeed55;a.size=80;a.speedUp;}}【练习题】
03.类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据那么,我们可以自己实现一个时间类,来满足程序中的需要定义名为MyTime的类,其中应有三个整型成员时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有为MyTime类定义构造方法,以方便创建对象时初始化成员变量再定义diaplay方法,用于将时间信息打印出来为MyTime类添加以下方法addSecondintsecaddMinuteintminaddHourinthousubSecondintsecsubMinuteintminsubHourinthou分别对时、分、秒进行加减运算classMyTime{privateinthour;privateintminute;privateintsecond;publicMyTimeinthourintminuteintsecond{this.hour=hour;this.minute=minute;this.second=second;}voiddiaplay{;}voidaddSecondintsec{second=second+sec;}voidaddMinuteintmin{minute=minute+min;}voidaddHourinthou{hour=hour+hou;}voidsubSecondintsec{second=second-sec;}voidsubMinuteintmin{minute=minute-min;}voidsubHourinthou{hour=hour-hou;}voidTest{ifhour=23hour=0minute=59minute=0second=59second=0else}}publicclassb01{publicstaticvoidmainStringargs[]{MyTimeb=newMyTime11455;b.subHour5;b.subMinute5;b.subSecond2;b.diaplay;b.Test;}}【练习题】
04.构造方法编写Java程序,模拟简单的计算器定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算在main方法中创建Number类的对象,调用各个方法,并显示计算结果classNumber{privateintn1;privateintn2;publicNumberintn1intn2{this.n1=n1;this.n2=n2;}voidaddition{intequal=n1+n2;}voidsubtration{intequal=n1-n2;}voidmultiplication{intequal=n1*n2;}voiddivision{intequal=n1/n2;}}publicclassb01{publicstaticvoidmainStringargs[]{Numbernum=newNumber63;num.division;}}【练习题】
05.构造方法编写Java程序,用于显示人的姓名和年龄定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)定义构造方法,用来初始化数据成员再定义显示(display)方法,将姓名和年龄打印出来在main方法中创建人类的实例,然后将信息显示classPerson{privateStringname;privateintage;publicPersonStringnameintage{this.name=name;this.age=age;}voiddisplay{——+name+\n年龄——+age;}}publicclassb01{publicstaticvoidmainStringargs[]{Personper=newPerson奥巴马20;per.display;}}【练习题】
06.get方法和set方法定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX和setXXX方法提示假设有privateStringname;则有publicvoidsetNameStringname{this.name=name;}publicStringgetName{returnthis.name;}classPerson{privateStringname;publicPersonStringn{this.setNamen;}publicvoidsetNameStringn{name=n;}publicStringgetName{returnname;}publicvoidgetInfo{}}publicclassb01{publicstaticvoidmainStringargs[]{Personper=newPerson奥巴马;per.getName;per.getInfo;}}【练习题】
07.构造方法与重载为“无名的粉”写一个类classWuMingFen要求
1.有三个属性面码:StringtheMa粉的分量两intquantity是否带汤booleanlikeSoup
2.写一个构造方法,以便于简化初始化过程,如WuMingFenf1=newWuMingFen牛肉3true;
3.重载构造方法,使得初始化过程可以多样化WuMingFenf2=newWuMingFen牛肉2;
4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的?WuMingFenf3=newWuMingFen;
5.写一个普通方法check,用于查看粉是否符合要求即将对象的三个属性打印在控制台上classWuMingFen{StringtheMa;intquantitu;booleanlikeSoup;publicWuMingFen{}publicWuMingFenStringtheMaintquantitu{this.theMa=theMa;this.quantitu=quantitu;}publicWuMingFenStringtheMaintquantitubooleanlikeSoup{thistheMaquantitu;this.likeSoup=likeSoup;}publicvoidcheck{}}publicclassb01{publicstaticvoidmainStringargs[]{WuMingFenf1=newWuMingFen牛肉3true;WuMingFenf2=newWuMingFen牛肉2;WuMingFenf3=newWuMingFen;f
1.check;f
2.check;f
3.check;}}【练习题】
08.构造方法的重载定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法在main方法中测试以上各类classVehicles{privateStringbrand;privateStringcolor;publicVehiclesStringbrandStringcolor{this.brand=brand;this.color=color;}voidrun{}voidshowInfo{}}classCarextendsVehicles{privateintseats;publicCarStringbrandStringcolorintseats{superbrandcolor;this.seats=seats;}voidshowCar{super.showInfo;}}classTruckextendsVehicles{privatefloatload;publicTruckStringbrandStringcolorfloatload{superbrandcolor;this.load=load;}voidshowTruck{super.showInfo;}}publicclassb01{publicstaticvoidmainStringargs[]{Vehiclesf1=newVehicles宝马白色;Carf2=newCar法拉利黑色4;Truckf3=newTruck解放绿色5000;f
1.run;f
1.showInfo;f
2.run;f
2.showCar;f
3.run;f
3.showTruck;}}【练习题】
09.构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串@gameschool.comclassNetUser{privateStringID;privateStringkey;privateStringemailDress;publicNetUserStringIDStringkey{this.ID=ID;this.key=key;this.emailDress=ID+@gameschool.com;}voidoutput{}}publicclassb01{publicstaticvoidmainStringargs[]{NetUseruser=newNetUser5566yan;user.output;}}【练习题】
10.构造方法与重载、包编写Addition类,该类中应包含一组实现两数相加运算的重载方法实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串在main方法中创建Addition类的实例,分别调用重载方法测试其效果应将Addition类打入到包中,以自己名字的拼音为包命名packageyan.cong;classAddition{publicAddition{}voidaddintaintb{intc=a+b;}voidaddlongalongb{longc=a+b;}voidaddfloatafloatb{floatc=a+b;}voidadddoubleadoubleb{doublec=a+b;}voidaddStringaStringb{Stringc=a+b;}}publicclassb01{publicstaticvoidmainStringargs[]{Additionm=newAddition;Additionn=newAddition;m.add56;n.addhelloworld;}}【练习题】
11.构造方法与重载将上次练习题三中编写的MyTime类打到以自己名字的拼音命名的包中,并为该类重载一组构造方法,以方便使用者能够以多种形式初始化该类的实例packageyan.cong;classMyTime{privateinthour;privateintminute;privateintsecond;publicMyTimeinthourintminuteintsecond{this.hour=hour;this.minute=minute;this.second=second;}publicMyTimeintminuteintsecond{this.minute=minute;this.second=second;}voiddiaplay{;}voidaddSecondintsec{second=second+sec;}voidaddMinuteintmin{minute=minute+min;}voidaddHourinthou{hour=hour+hou;}voidsubSecondintsec{second=second-sec;}voidsubMinuteintmin{minute=minute-min;}voidsubHourinthou{hour=hour-hou;}voidTest{ifhour=23hour=0minute=59minute=0second=59second=0else}}publicclassb01{publicstaticvoidmainStringargs[]{MyTimeb=newMyTime11455;b.subHour5;b.subMinute5;b.subSecond2;b.diaplay;b.Test;}}【练习题】
12.构造方法与重载建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性并通过不同的构造方法创建事例至少要求汽车能够加速,减速,停车要求命名规范,代码体现层次,有友好的操作提示classCar{privateinttires;privateStringcolor;privateintload;publicCarinttires{this.tires=tires;}publicCarStringcolor{this.color=color;}publicCarinttiresStringcolorintload{thistires;this.color=color;this.load=load;}voidupSpeed{}voiddownSpeed{}voidstop{}}publicclassb01{publicstaticvoidmainStringargs[]{Cara=newCar6;Carb=newCar4白色4000;a.upSpeed;b.stop;}}【练习题】
13.构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作
1、传递两个整数值并找出其中较大的一个值
2、传递三个double值并求出其乘积
3、传递两个字符串值并检查其是否相同
4、在main方法中测试构造函数的调用classCheck{publicCheckintaintb{intc=Math.maxab;}publicCheckdoubleadoublebdoublec{doubled=a*b*c;}publicCheckStringaStringb{booleanc=a.equalsb;}}publicclassb01{publicstaticvoidmainStringargs[]{Checkm=newCheck48;Checkn=newCheck
3.
34.
24.0;Checkp=newCheckacab;}}【练习题】
14.Static关键字与普通变量的区别创建一个名称为StaticDemo的类,并声明一个静态变量和一个普通变量对变量分别赋予10和5的初始值在main方法中输出变量值classStaticDemo{privatestaticinta=10;privateintb=5;publicStringgetInfo{returna=+a+\nb=+b;}}publicclassb01{publicstaticvoidmainStringargs[]{StaticDemom=newStaticDemo;}}【练习题】
15.继承创建一个名称为MainPackage的包,使它包含MainClass和MainSubClass类MainClass类应当包含变量声明,其值从构造函数中输出MainSubClass类从MainClass派生而来试执行下列操作创建一个名称为SamePackage的类,使它导入上述包,并创建一个MainSubClass类的对象packageMainPackage;classMainClass{Stringstr;publicMainClassStringstr{this.str=str;}}classMainSubClassextendsMainClass{publicMainSubClassStringstr{superstr;}}importMainPackage.MainSubClass;classSamePackage{MainSubClassb=newMainSubClassa;ledkfjl;}【练习题】
16.包、继承、构造函数创建一个名称为MainPackage的包,使它包含MainClass和MainSubClass类MainClass类应当包含变量声明,其值从构造方法中输出MainSubClass类从MainClass派生而来试执行下列操作创建一个名称为SamePackage的类,使它导入上述包,并创建一个MainSubClass类的对象【练习题】
17.继承创建一个父类和子类,父类有一个数据成员,子类继承父类的该数据成员,通过构造函数初始化并显示该数据成员的值classFather{inta;publicFatherinta{this.a=a;}}classSonextendsFather{publicSoninta{supera;}}publicclassb01{publicstaticvoidmainStringargs[]{Sone=newSon4;}}【练习题】
18.覆盖、继承建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量并通过不同的构造方法创建实例至少要求汽车能够加速,减速,停车再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法、classAuto{inttires;Stringcolor;intload;intspeed;publicAutointtiresStringcolorintloadintspeed{this.tires=tires;this.color=color;this.load=load;this.speed=speed;}voidupSpeed{}voiddownSpeed{}voidstop{}voidgetInfo{}}classCarextendsAuto{booleanAircondition;booleanCD;publicCarinttiresStringcolorintloadintspeedbooleanAirconditionbooleanCD{supertirescolorloadspeed;this.Aircondition=Aircondition;this.CD=CD;}voidupSpeed{}voiddownSpeed{}voidgetInfo{}}publicclassb01{publicstaticvoidmainStringargs[]{Carm=newCar4白色50100falsetrue;m.downSpeed;m.getInfo;}}【练习题】
19.抽象类与继承设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类使用继承将这些图形分类,找出能作为基类部分的共同特征如校准点和方法如画法、初始化,并看看这些图形是否能进一步划分为子类本题只考虑实现思想,不考虑具体实现的细节,实现方式可自由发挥abstractclassGraph{publicPointcenter;publicGraphPointcenter{this.center=center;}publicabstractvoidgetInfo;}classRectangleextendsGraph{privateintlength;privateintwidth;publicRectanglePointcenterintlengthintwidth{supercenter;this.length=length;this.width=width;}publicvoidgetInfo{+\n矩形长度+length+\n矩形宽度+width;}}classCircleextendsGraph{privateintradius;publicCirclePointcenterintradius{supercenter;this.radius=radius;}publicvoidgetInfo{+\n圆形半径+radius;}}publicclassb01{publicstaticvoidmainStringargs[]{Grapha=newRectanglenewPoint8847;a.getInfo;Graphb=newCirclenewPoint8810;b.getInfo;}}【练习题】
20.抽象类创建一个Vehicle类并将它声明为抽象类在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法在Car类中,应当显示“四轮车”信息;而在Motorbike类中,应当显示“双轮车”信息创建另一个带main方法的类,在该类中创建Car和Motorbike的实例,并在控制台中显示消息abstractclassVehicle{publicabstractStringNoofwheels;}classCarextendsVehicle{inta;intb;publicCarintaintb{this.a=a;this.b=b;}publicStringNoofwheels{return四轮车————\n载重+a+\n体积+b;}}classMotorbikeextendsVehicle{intc;intd;publicMotorbikeintcintd{this.c=c;this.d=d;}publicStringNoofwheels{return双轮车————\n长度+c+\n高度+d;}}publicclassb01{publicstaticvoidmainStringargs[]{Vehiclem=newCar8844;Vehiclen=newMotorbike34;}}【练习题】
21.抽象类创建一个Vehicle类并将它声明为抽象类在Vehicle类中声明一个NoOfWheels方法,使它返回一个字符串值创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法在Car类中,应当显示“四轮车”信息;而在Motorbike类中,应当显示“双轮车”信息创建另一个带main方法的类,在该类中创建Car和Motorbike的实例,并在控制台中显示消息【练习题】
22.接口创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start和stop在两个名称分别为Bike和Bus的类中实现Vehicle接口创建一个名称为interfaceDemo的类,在interfaceDemo的main方法中创建Bike和Bus对象,并访问start和stop方法interfaceVehicle{publicabstractStringstartbooleana;publicabstractStringstopbooleanb;}classBikeimplementsVehicle{publicStringstartbooleana{returna+车启动了;}publicStringstopbooleanb{returnb+车停止了;}}classBusimplementsVehicle{publicStringstartbooleana{returna+车启动了;}publicStringstopbooleanb{returnb+车停止了;}}publicclassinterfaceDemo{publicstaticvoidmainStringargs[]{Bikem=newBike;Busn=newBus;}}【练习题】
23.接口创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start和stop在两个名称分别为Bike和Bus的类中实现Vehicle接口创建一个名称为interfaceDemo的类,在interfaceDemo的main方法中创建Bike和Bus对象,并访问start和stop方法【练习题】
24.抽象类、继承、接口综合设计一个系统XXX门的实现过程流程设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开门openDoor和关门closeDoor;然后对门进行另外的功能设计防盗--theftproof、防水--waterproof、防弹--bulletproof、防火、防锈……要求利用继承、抽象类、接口的知识设计该门abstractclassDoor{publicabstractvoidopenDoor;publicabstractvoidcloseDoor;}classrealDoorextendsDoor{publicvoidopenDoor{}publicvoidcloseDoor{}publicvoidtheftproof{}publicvoidwaterproof{}publicvoidbulletproof{}}publicclassb01{publicstaticvoidmainStringargs[]{realDoord=newrealDoor;d.openDoor;d.closeDoor;d.theftproof;d.waterproof;d.bulletproof;}}【练习题】
25.抽象类、继承、接口综合设计一个系统xxx纯净水生产线目前流程是从某个地方把水取出来,然后经过缓冲,过滤,加热和放糖的步骤abstract水{publicvoid水;}interface过滤{}interface缓冲{}interface加热{}interface放糖{}class纯净水1extends水imps过滤缓冲{}class纯净水2extends水imps缓冲{}class纯净水2extends水imps过滤{}abstractclassWater{publicabstractvoidWater;}interfaceFilter{publicabstractvoidFilter;}interfaceBuffer{publicabstractvoidBuffer;}interfaceHeat{publicabstractvoidHeat;}interfaceSugar{publicabstractvoidSugar;}classWater1extendsWaterimplementsFilterBuffer{publicvoidWater{}publicvoidFilter{}publicvoidBuffer{}}classWater2extendsWaterimplementsBuffer{publicvoidWater{}publicvoidBuffer{}}classWater3extendsWaterimplementsFilter{publicvoidWater{}publicvoidFilter{}}publicclassb01{publicstaticvoidmainStringargs[]{Water1a=newWater1;Water2b=newWater2;Water3c=newWater3;a.Water;a.Buffer;a.Filter;b.Water;b.Buffer;c.Water;c.Filter;}}【练习题】
26.综合题定义一个抽象的Role类,有姓名,年龄,性别等成员变量
1.要求尽可能隐藏所有变量能够私有就私有能够保护就不要公有,再通过GetXXX和SetXXX方法对各变量进行读写具有一个抽象的play方法,该方法不返回任何值,同时至少定义两个构造方法Role类中要体现出this的几种用法
2.从Role类派生出一个Employee类,该类具有Role类的所有成员(构造方法除外),并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play方法,并提供一个finalsing方法
3.Manager类继承Employee类,有一个final成员变量vehicle
4.在main方法中制造Manager和Employee对象并测试这些对象的方法abstractclassRole{privateintage;privateStringname;publicRoleinta{this.setAgea;}publicRoleStringb{this.setNameb;}publicRoleintaStringb{thisa;this.setNameb;}publicvoidsetAgeinta{age=a;}publicvoidsetNameStringb{name=b;}publicintgetAge{returnage;}publicStringgetName{returnname;}publicabstractvoidplay;}classEmployeeextendsRole{privateintsalary;privatestaticStringID;publicEmployeeintaStringi{supera;setIDi;}publicEmployeeintaStringbintsStringi{thisai;this.setNameb;setSalarys;}publicvoidsetIDStringi{ID=i;}publicStringgetID{returnID;}publicvoidsetSalaryints{salary=s;}publicintgetSalary{returnsalary;}publicvoidplay{+\n姓名+getName+\n年龄+getAge+\n薪水+getSalary+元\n编号+getID;}publicfinalvoidsing{}}classManagerextendsEmployee{privatefinalStringvehicle;publicManagerintaStringbintsStringiStringvehicle{superabsi;this.vehicle=vehicle;}publicvoidplay{+\n姓名+getName+\n年龄+getAge+\n薪水+getSalary+元\n编号+getID+\n交通工具+vehicle;}}publicclassb01{publicstaticvoidmainStringargs[]{Employeeemp=newEmployee25韩寒5000041131556;emp.getAge;emp.getName;emp.getSalary;emp.getID;emp.play;Managerman=newManager27郭800004111111宝时捷;man.getAge;man.getName;man.getSalary;man.getID;man.play;}}【练习题】
27.综合题题目品尝饮料时间2006-06-
181、语言和环境
1.实现语言Java
2.环境要求JDK
1.4或以上版本及其联机帮助文档
2、要求
1、使用命令行参数(饮料类型),输出该饮料类型的味道,如当命令行参数为1时,结果见图
12、如果没有该种饮料,结果见如图
23、推荐实现步骤
1、建立一个Java抽象类Drink,应当a、声明一个抽象方法taste,该方法负责输出饮料的味道;b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如c、声明静态工厂方法getDrinkintdrinkType,根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常
2、建立Drink的具体子类a、分别建立Drink的子类Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);b、实现taste方法,要求在控制台打印各自的味道特征
3、建立异常类DrinkNotFoundExceptiona、继承Exceptionb、在Drink的方法getDrinkintdrinkType中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常c、在使用getDrink方法的类中捕捉该异常
4、建立Test测试类,测试以上内容的正确性a、编写main方法,通过命令行传参的方式传入某种饮料的类型b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象注意捕获DrinkNotFoundExceptionc、然后调用该饮料对象的taste方法,输出该饮料的味道
5、编译程序,并运行
4、注意事项
1、仔细审题,把题目要求理解准确;
2、请注意多态性的运用;
3、请注意代码的书写、命名符合规范,应有适当的注释图2。