Java面向对象编程练习题答案_第1页
Java面向对象编程练习题答案_第2页
Java面向对象编程练习题答案_第3页
Java面向对象编程练习题答案_第4页
Java面向对象编程练习题答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【练习题】 01. 类的成员变量:猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A 类的成员变量 v 进行猜。如果大了则提示大了, 小了则提示小了。 等于则提示猜 测成功。import .*;class Aint v = 100;A()= v;public class b01public static void main(String args)A a = new A();Scanner intput = new Scanner;int intputvalue = ();if(intputvalue 你的输入大于这个值 ); if(intputvalue 你的输入小于这

2、个值 ); if(intputvalue=猜测成功 );【练习题】 02. 类的成员变量: 请定义一个交通工具 (Vehicle) 的类,其中有 : 属性:速度 (speed) ,体积 (size) 等等方法:移动 (move() ,设置速度 (setSpeed(int speed) ,加速 speedUp(), 减速 speedDow n()等等.最后在测试类 Vehicle 中的 main() 中实例化一个交通工具对象,并通过方法给 它初始化 speed,size 的值,并且通过打印出来。另外,调用加速,减速的方法 对速度进行改变。class Vehicleint speed;int si

3、ze;void move();void setSpeed(int speed)= speed;void speedUp()speed = speed+1;=speed;void speedDown()speed = speed-1;=speed;public class b01 public static void main(String args)Vehicle a = new Vehicle();(55);= 80;();Speed:+nsize:+;【练习题】 03. 类的成员变量与方法、构造方法 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可 以自己实现一个时间

4、类,来满足程序中的需要。定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute ),秒 (seco nd),为了保证数据的安全性,这三个成员变量应声明为私有。为MyTime类定义构造方法,以方便创建对象时初始化成员变量。再定义 diaplay 方法,用于将时间信息打印出来。为MyTime类添加以下方法:addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。class MyTi

5、meprivate int hour;private int minute;private int second;public MyTime(int hour,int minute,int second)= hour;= minute;= second;void diaplay() 时间: +hour+:+minute+:+second);void addSecond(int sec)second = second+sec;void addMinute(int min)minute = minute+min;void addHour(int hou)hour = hour+hou;void s

6、ubSecond(int sec)second = second-sec;void subMinute(int min)minute = minute-min;void subHour(int hou)hour = hour-hou;void Test() if(hour=0&minute=0&second=0) nTruen);elsenFalsen);public class b01public static void main(String args)MyTime b = new MyTime(11,4,55);(5);(5);(2);();();【练习题】 04. 构造方法编写 Jav

7、a 程序,模拟简单的计算器。定义名为Number的类,其中有两个整型数据成员 n1和n2,应声明为私有。编 写构造方法,赋予n1和n2初始值,再为该类定义加(addition )、减(subtration )、 乘( multiplication )、除( division )等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。在main方法中创建Number类的对象,调用各个方法,并显示计算结果。class Numberprivate int n1;private int n2;public Number(int n1,int n2)= n1;= n2;void addition()

8、int equal = n1+n2;n1+n2=+equal);void subtration()int equal = n1-n2;n1-n2=+equal);void multiplication()int equal = n1*n2;n1*n2=+equal);void division()int equal = n1/n2;n1/n2=+equal);public class b01public static void main(String args)Number num = new Number(6,3);();【练习题】 05. 构造方法:编写 Java 程序,用于显示人的姓名和

9、年龄。定义一个人类(Person),该类中应该有两个私有属性,姓名(name和年龄(age) 定义构造方法,用来初始化数据成员。再定义显示( display )方法,将姓名和 年龄打印出来。在 main 方法中创建人类的实例,然后将信息显示。class Personprivate String name;private int age;public Person(String name,int age)= name;= age;void display() 姓名 +name+n 年龄 +age);public class b01public static void main(String ar

10、gs)Person per = new Person( 奥巴马 ,20);();【练习题】方法和 set 方法并提供定义一个类, 该类有一个私有成员变量, 通过构造方法将其进行赋初值, 该成员的getXXX()和setXXX()方法提示:假设有 private String name; 则有public void setName(String name)= name;public String getName()return ;class Personprivate String name;public Person (String n)(n);public void setName(Stri

11、ng n)name = n ;public String getName()return name;public void getInfo() 名字: +name);public class b01public static void main(String args)Person per = new Person( 奥巴马 );();();【练习题】 07. 构造方法与重载 为“无名的粉”写一个类: class WuMingFen 要求:1. 有三个属性:面码 :String theMa粉的分量 ( 两) :int quantity是否带汤: boolean likeSoup2. 写一个构造

12、方法,以便于简化初始化过程,如: WuMingFen f1 = new WuMingFen( 牛肉 ,3,true);3. 重载构造方法,使得初始化过程可以多样化:WuMingFen f2 = new WuMingFen( 牛肉,2);4. 如何使得下列语句构造出来的粉对象是酸辣面码、 2两、带汤的? WuMingFen f3 = new WuMingFen();5. 写一个普通方法: check() ,用于查看粉是否符合要求。即:将对象的三个属 性打印在控制台上。class WuMingFenString theMa;int quantitu;boolean likeSoup;public

13、WuMingFen()public WuMingFen(String theMa,int quantitu)= theMa;= quantitu;public WuMingFen(String theMa,int quantitu,boolean likeSoup) this(theMa,quantitu);= likeSoup;public void check()面码:+theMa+n 粉的份量:+quantitu+n是否带汤:+likeSoup);public class b01public static void main(String args)WuMingFen fl = new

14、WuMingFen(” 牛肉,3,true);WuMingFen f2 = new WuMingFen( 牛肉 ,2);WuMingFen f3 = new WuMingFen();();();();【练习题】 08. 构造方法的重载:定义一个名为 Vehicles (交通工具)的基类,该类中应包含 String 类型的成员 属性 brand (商标)和 color (颜色),还应包含成员方法 run (行驶,在控制台 显示“我已经开动了” )和 showInfo (显示信息,在控制台显示商标和颜色) , 并编写构造方法初始化其成员属性。编写Car (小汽车)类继承于Vehicles类,增加i

15、nt型成员属性seats (座位), 还应增加成员方法showCar (在控制台显示小汽车的信息),并编写构造方法。编写Truck (卡车)类继承于Vehicles类,增加float型成员属性load (载重), 还应增加成员方法showTruck (在控制台显示卡车的信息),并编写构造方法。 在 main 方法中测试以上各类。class Vehiclesprivate String brand;private String color;public Vehicles(String brand,String color)= brand;= color;void run()我已经开动了 );vo

16、id showInfo() 商标: +brand+n 颜色 :+color);class Car extends Vehiclesprivate int seats;public Car(String brand,String color,int seats)super(brand,color);= seats;void showCar()(); 座位 :+seats);class Truck extends Vehiclesprivate float load;public Truck(String brand,String color,float load)super(brand,colo

17、r);= load;void showTruck()(); 载重: +load);public class b01public static void main(String args)Vehicles f1 = new Vehicles(宝马 , 白色 );Car f2 = new Car( 法拉利 , 黑色 ,4);Truck f3 = new Truck(解放 , 绿色,5000);();();();();();();【练习题】 09. 构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户

18、ID 和用户 密码时必须的,缺省的 email 地址是用户 ID 加上字符串 class NetUserprivate String ID;private String key;private String emailDress;public NetUser(String ID,String key)= ID;= key;= ID+;void output()ID : +ID+n 用户密码+key+n 用户地址+emailDress);public class b01public static void main(String args)NetUser user = new NetUser(5

19、566,yan);();【练习题】 10. 构造方法与重载、包编写 Addition 类,该类中应包含一组实现两数相加运算的重载方法。 实现加法运算的方法,应接受两个参数(即加数和被加数) ,方法将两个参数进 行加法运算后, 返回相加结果。 考虑可能针对不同的数据类型进行计算, 重载一 组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。在 main 方法中创建 Addition 类的实例,分别调用重载方法测试其效果。应将 Addition 类打入到包中,以自己名字的拼音为包命名。package ;class Additionpublic Addition()void add(int

20、a,int b)int c = a+b;a+b=+c);void add(long a,long b)long c = a+b;a+b=+c);void add(float a,float b)float c = a+b;a+b=+c);void add(double a,double b)double c = a+b;a+b=+c);void add(String a,String b)String c = a+b;a+b=+c);public class b01public static void main(String args)Addition m = new Addition();A

21、ddition n = new Addition();(5,6);(hello,world);【练习题】 11. 构造方法与重载将上次练习题三中编写的 MyTime类打到以自己名字的拼音命名的包中,并为该 类重载一组构造方法,以方便使用者能够以多种形式初始化该类的实例。 package ;class MyTimeprivate int hour;private int minute;private int second;public MyTime(int hour,int minute,int second)= hour;= minute;= second;public MyTime(int

22、minute,int second)= minute;= second;void diaplay() 时间: +hour+:+minute+:+second);void addSecond(int sec) second = second+sec;void addMinute(int min) minute = minute+min;void addHour(int hou)hour = hour+hou;void subSecond(int sec) second = second-sec;void subMinute(int min) minute = minute-min;void su

23、bHour(int hou)hour = hour-hou;void Test() if(hour=0&minute=0&second=0) nTruen);elsenFalsen);public class b01public static void main(String args)MyTime b = new MyTime(11,4,55);(5);(5);(2);();();【练习题】 12. 构造方法与重载 建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。并通过不同的构 造方法创建事例。至少要求:汽车能够加速,减速,停车。 要求:命名规范,代码体现层次,有友好的操作提示。cl

24、ass Carprivate int tires;private String color;private int load;public Car(int tires)= tires; 轮胎个数: +tires);public Car(String color)= color; 汽车颜色: +color);public Car(int tires,String color,int load) this(tires);= color; 汽车颜色: +color);= load; 汽车重量: +load);void upSpeed() 车正在加速 );void downSpeed() 车正在减速

25、);void stop() 车已经停止了 ); public class b01public static void main(String args)Car a = new Car(6);Car b = new Car(4, 白色 ,4000);();();【练习题】 13. 构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作:1 、传递两个整数值并找出其中较大的一个值2 、传递三个 double 值并求出其乘积3 、传递两个字符串值并检查其是否相同4 、在 main 方法中测试构造函数的调用 class Checkpublic Check(int a ,int b)int

26、c=(a,b); 较大值为: +c);public Check(double a,double b,double c) double d = a*b*c;a*b*c = +d);public Check(String a,String b) boolean c = (b); 两字符串相等: +c); public class b01public static void main(String args)Check m = new Check(4,8);Check n = new Check,;Check p = new Check(ac,ab);【练习题】关键字与普通变量的区别:创建一个名称为

27、 StaticDemo 的类,并声明一个静态变量和一个普通变量。对变 量分别赋予 10 和 5 的初始值。在 main() 方法中输出变量值。class StaticDemoprivate static int a=10;private int b=5;public String getInfo()return a=+a+nb=+b;public class b01public static void main(String args)StaticDemo m = new StaticDemo();【练习题】 15. 继承:创建一个名称为 MainPackage 的包,使它包含 MainCla

28、ss 和 MainSubClass 类。 MainClass 类应当包含变量声明,其值从构造函数中输出。 MainSubClass 类从 MainClass派生而来。试执行下列操作:创建一个名称为SamePackag的类,使它导入上述包,并创建一个 MainSubClass 类的对象。package MainPackage;class MainClassString str;public MainClass(String str)= str;class MainSubClass extends MainClasspublic MainSubClass(String str)super(str)

29、;import ;class SamePackageMainSubClass b = new MainSubClass(a;ledkfjl);【练习题】 16. 包、继承、构造函数创建一个名称为 MainPackage 的包,使它包含 MainClass 和 MainSubClass 类。 MainClass 类应当包含变量声明,其值从构造方法中输出。 MainSubClass 类从 MainClass派生而来。试执行下列操作:创建一个名称为SamePackag的类,使它导入上述包,并创建一个 MainSubClass 类的对象。【练习题】 17. 继承: 创建一个父类和子类, 父类有一个数据

30、成员, 子类继承父类的该数据成员, 通过 构造函数初始化并显示该数据成员的值。class Fatherint a;public Father(int a)= a;class Son extends Fatherpublic Son(int a)super(a); a=+a);public class b01public static void main(String args)Son e = new Son(4);【练习题】 18. 覆盖、继承 建立一个汽车 Auto 类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。 并通过不同的构造方法创建实例。 至少要求: 汽车能够加速, 减速,停车

31、。 再 定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速, 减速的方法、 class Autoint tires;String color; int load;int speed;public Auto(int tires,String color,int load,int speed) = tires;= color;= load;= speed;void upSpeed() 加速了 );void downSpeed()减速了 );void stop() 停车了 ); void getInfo() 轮胎数: +tires+n 颜色: +color+n +speed)

32、;class Car extends Autoboolean Aircondition;boolean CD;public Car(int tires,String color,int Aircondition,boolean CD) super(tires,color,load,speed);= Aircondition;= CD;void upSpeed()开始加速了 );void downSpeed()开始减速了 );void getInfo() 轮胎数: +tires+n 颜色: +color+n车身重量: +load+n 速度load,int speed,boolean车身重量: +

33、load+tn 速度 +speed+Km/hn 有空调: +Aircondition+n有 CD:+CD);public class b01public static void main(String args)Car m = new Car(4, 白色 ,50,100,false,true);();();【练习题】 19. 抽象类与继承 设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。使用继承将这些 图形分类,找出能作为基类部分的共同特征 (如校准点 )和方法(如画法、初始化), 并看看这些图形是否能进一步划分为子类。本题只考虑实现思想,不考虑具体实现的细节,实现方式可自由发挥。 i

34、mport class Graphpublic Point center;public Graph(Point center)= center;public abstract void getInfo();class Rectangle extends Graphprivate int length;private int width;public Rectangle(Point center,int length,int width) super(center);= length;= width;public void getInfo() 矩形: n+ 校准点: +center+n 矩形长度

35、: +length+n 矩形宽度: +width);class Circle extends Graphprivate int radius;public Circle(Point center, int radius) super(center);= radius;public void getInfo() 圆形: n+ 校准点: +center+n 圆形半径: +radius);public class b01public static void main(String args)Graph a = new Rectangle(new Point(8,8),4,7);();Graph b

36、= new Circle(new Point(8,8),10);();【练习题】 20. 抽象类:创建一个 Vehicle 类并将它声明为抽象类。 在 Vehicle 类中声明一个 NoOfWheels 方法,使它返回一个字符串值。 创建两个类 Car 和 Motorbike 从 Vehicle 类继承, 并在这两个类中实现NoOfWheels方法。在Car类中,应当显示“四轮车”信息; 而在 Motorbike 类中,应当显示“双轮车”信息。创建另一个带 main 方法的类, 在该类中创建 Car 和 Motorbike 的实例,并在控制台中显示消息。abstract class Vehic

37、lepublic abstract String Noofwheels();class Car extends Vehicleint a;int b;public Car(int a,int b)=a;=b;public String Noofwheels()return 四轮车 n 载重: +a+n 体积: +b;class Motorbike extends Vehicleint c;int d;public Motorbike(int c,int d)= c;= d;public String Noofwheels()return 双轮车 n 长度: +c+n 高度: +d;public

38、 class b01public static void main(String args)Vehicle m = new Car(88,44);Vehicle n = new Motorbike(3,4);【练习题】 21. 抽象类:创建一个 Vehicle 类并将它声明为抽象类。 在 Vehicle 类中声明一个 NoOfWheels 方法,使它返回一个字符串值。 创建两个类 Car 和 Motorbike 从 Vehicle 类继承, 并在这两个类中实现NoOfWheels方法。在Car类中,应当显示“四轮车”信息; 而在 Motorbike 类中,应当显示“双轮车”信息。创建另一个带

39、main 方法的类, 在该类中创建 Car 和 Motorbike 的实例,并在控制台中显示消息。【练习题】 22. 接口:创建一个名称为 Vehicle 的接口,在接口中添加两个带有一个参数的方法 start() 和 stop() 。在两个名称分别为 Bike 和 Bus 的类中实现 Vehicle 接口。创建一个 名称为 interfaceDemo 的类,在 interfaceDemo 的 main() 方法中创建 Bike 和 Bus 对象,并访问 start() 和 stop() 方法。interface Vehiclepublic abstract String start(bool

40、ean a);public abstract String stop(boolean b);class Bike implements Vehiclepublic String start(boolean a)return a+ 车启动了 ;public String stop(boolean b)return b+ 车停止了 ;class Bus implements Vehiclepublic String start(boolean a)return a+ 车启动了 ;public String stop(boolean b)return b+ 车停止了 ;public class in

41、terfaceDemopublic static void main(String args)Bike m = new Bike();Bike n+(false)+n+(true);Bus n = new Bus();Bus n+(true)+n+(false);【练习题】 23. 接口:创建一个名称为 Vehicle 的接口,在接口中添加两个带有一个参数的方法 start() 和 stop() 。在两个名称分别为 Bike 和 Bus 的类中实现 Vehicle 接口。创建一个 名称为 interfaceDemo 的类,在 interfaceDemo 的 main() 方法中创建 Bike

42、和 Bus 对象,并访问 start() 和 stop() 方法。【练习题】 24. 抽象类、继承、接口综合 设计一个系统:XXX门的实现过程:流程:设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开 门 openDoor() 和关门 closeDoor() ;然后 对门进行另 外的功能设计 , 防盗 -theftproof() 、防水-waterproof。、防弹-bulletproof。、防火、防锈要求:利用继承、抽象类、接口的知识设计该门abstract class Doorpublic abstract void openDoor();public abstrac

43、t void closeDoor();class realDoor extends Doorpublic void openDoor() 开门 n);public void closeDoor() 关门 n);public void theftproof()public void waterproof() 防水 n);public void bulletproof() 防弹 n);public class b01public static void main(String args)realDoor d = new realDoor();();();();();();,加热和放糖的步骤【练习题

44、】 25. 抽象类、继承、接口综合 设计一个系统: xxx 纯净水生产线 目前流程是:从某个地方把水取出来,然后经过缓冲, abstract 水 public void 水 (); interface 过滤 interface 缓冲 interface 加热 interface 放糖 class 纯净水 1 extendsclass 纯净水 2 extendsclass 纯净水 2 extends水 imps 过滤 , 缓冲 水 imps 缓冲 水 imps 过滤 abstract class Waterpublic abstract void Water(); interface Filte

45、rpublic abstract void Filter();interface Bufferpublic abstract void Buffer();interface Heatpublic abstract void Heat();interface Sugarpublic abstract void Sugar();class Water1 extends Water implements Filter,Buffer public void Water() 水1的制造过程: n); public void Filter() 水已经过滤 n);public void Buffer() 水

46、已经缓冲 n);class Water2 extends Water implements Bufferpublic void Water() 水2的制造过程: n); public void Buffer() 水已经缓冲 n);class Water3 extends Water implements Filter public void Water() 水3的制造过程: n); public void Filter() 水已经过滤 n); public class b01public static void main(String args)Water1 a = new Water1();

47、Water2 b = new Water2();Water3 c = new Water3();();();();();();();();【练习题】 26. 综合题定义一个抽象的 Role 类,有姓名,年龄,性别等成员变量1. 要求尽可能隐藏所有变量 (能够私有就私有 , 能够保护就不要公有 ),再通 过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play() 方法,该方法不返回任何值,同时至少定义两个构造方法。 Role 类中要 体现出 this 的几种用法。2. 从Role类派生出一个Employee类,该类具有Role类的所有成员(构 造方法除外),并扩展 sa

48、lary 成员变量,同时增加一个静态成员变量 “职工编号( ID )”。同样要有至少两个构造方法, 要体现出 this 和 super 的几种用法,还要求覆盖 play() 方法,并提供一个 final sing() 方法。3. Manager 类继承 Employee 类,有一个 final 成员变量 vehicle4. 在main()方法中制造Manager和Employee对象,并测试这些对象的方法abstract class Roleprivate int age;private String name; public Role(int a)(a) ;public Role(Strin

49、g b)(b) ;public Role(int a,String b) this(a);(b);public void setAge(int a) age = a;public void setName(String b) name = b;public int getAge()return age;public String getName()return name;public abstract void play();class Employee extends Roleprivate int salary;private static String ID;public Employee(int a,String i) super(a);se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论