《Java面向对象编程练习题答案0要点.pdf》由会员分享,可在线阅读,更多相关《Java面向对象编程练习题答案0要点.pdf(26页珍藏版)》请在三一文库上搜索。
1、【练习题】 01.类的成员变量: 猜数字游戏:一个类A 有一个成员变量 v,有一个初值 100。定义一个类,对A 类的成员变量 v 进行猜。如果大了则提示大了, 小了则提示小了。 等于则提示猜 测成功。 import java.util.*; class A int v = 100; A() this.v = v; public class b01 public static void main(String args) A a = new A(); Scanner intput = new Scanner(System.in); int intputvalue = intput.nextln
2、t(); if(intputvaluea.v) System.out.println(“你的输入大于这个值 “); if(intputvalue=0 else System.out.println(“nFalsen“); public class b01 public static void main(String args) MyTime b = new MyTime(11,4,55); b.subHour(5); b.subMinute(5); b.subSecond(2); b.diaplay(); b.Test(); 【练习题】 04.构造方法 编写 Java程序,模拟简单的计算器。
3、定义名为 Number 的类,其中有两个整型数据成员n1 和 n2,应声明为私有。编 写构造方法,赋予 n1和 n2 初始值,再为该类定义加 (addition) 、减(subtration) 、 乘(multiplication ) 、除( division)等公有成员方法,分别对两个成员变量执行 加、减、乘、除的运算。 在 main 方法中创建 Number类的对象,调用各个方法,并显示计算结果。 class Number private int n1; private int n2; public Number(int n1,int n2) this.n1 = n1; this.n2 =
4、 n2; void addition() int equal = n1+n2; System.out.println(“n1+n2=“+equal); void subtration() int equal = n1-n2; System.out.println(“n1-n2=“+equal); void multiplication() int equal = n1*n2; System.out.println(“n1*n2=“+equal); void division() int equal = n1/n2; System.out.println(“n1/n2=“+equal); pub
5、lic class b01 public static void main(String args) Number num = new Number(6,3); num.division(); 【练习题】 05.构造方法: 编写 Java程序,用于显示人的姓名和年龄。 定义一个人类(Person ) , 该类中应该有两个私有属性, 姓名 (name) 和年龄(age ) 。 定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年 龄打印出来。 在 main 方法中创建人类的实例,然后将信息显示。 class Person private String name; pri
6、vate int age; public Person(String name,int age) this.name = name; this.age = age; void display() System.out.println(“姓名 “+name+“n 年龄 “+age); public class b01 public static void main(String args) Person per = new Person(“ 奥巴马 “,20); per.display(); 【练习题】 06.get方法和 set方法 定义一个类, 该类有一个私有成员变量, 通过构造方法将其进行
7、赋初值,并提供 该成员的 getXXX() 和 setXXX() 方法 提示:假设有 private String name; 则有 public void setName(String name) this.name = name; public String getName() return this.name; class Person private String name; public Person (String n) this.setName(n); public void setName(String n) name = n ; public String getName()
8、 return name; public void getInfo() System.out.println(“名字:“+name); public class b01 public static void main(String args) Person per = new Person(“ 奥巴马 “); per.getName(); per.getInfo(); 【练习题】 07.构造方法与重载 为“无名的粉”写一个类:class WuMingFen 要求: 1.有三个属性:面码 :String theMa 粉的分量 (两):int quantity 是否带汤: boolean like
9、Soup 2.写一个构造方法,以便于简化初始化过程,如: WuMingFen f1 = new WuMingFen(“牛肉“,3,true); 3.重载构造方法,使得初始化过程可以多样化: WuMingFen f2 = new WuMingFen(“牛肉“,2); 4.如何使得下列语句构造出来的粉对象是酸辣面码、2 两、带汤的? WuMingFen f3 = new WuMingFen(); 5.写一个普通方法: check(),用于查看粉是否符合要求。即:将对象的三个属性 打印在控制台上。 class WuMingFen String theMa; int quantitu; boolean
10、 likeSoup; public WuMingFen() public WuMingFen(String theMa,int quantitu) this.theMa = theMa; this.quantitu = quantitu; public WuMingFen(String theMa,int quantitu,boolean likeSoup) this(theMa,quantitu); this.likeSoup = likeSoup; public void check() System.out.println(“面码: “+theMa+“n 粉的份量: “+quantitu
11、+“n 是否带 汤:“+likeSoup); public class b01 public static void main(String args) WuMingFen f1 = new WuMingFen(“牛肉“,3,true); WuMingFen f2 = new WuMingFen(“牛肉“,2); WuMingFen f3 = new WuMingFen(); f1.check(); f2.check(); f3.check(); 【练习题】 08.构造方法的重载: 定义一个名为 Vehicles(交通工具)的基类,该类中应包含String 类型的成员属 性 brand(商标)
12、和 color(颜色) ,还应包含成员方法run(行驶,在控制台显示 “我已经开动了”)和 showInfo(显示信息,在控制台显示商标和颜色) ,并编写 构造方法初始化其成员属性。 编写 Car(小汽车)类继承于Vehicles类,增加 int 型成员属性 seats (座位) ,还 应增加成员方法 showCar(在控制台显示小汽车的信息) ,并编写构造方法。 编写 Truck(卡车)类继承于Vehicles类,增加 float 型成员属性 load(载重) , 还应增加成员方法showTruck(在控制台显示卡车的信息) ,并编写构造方法。 在 main 方法中测试以上各类。 class
13、 Vehicles private String brand; private String color; public Vehicles(String brand,String color) this.brand = brand; this.color = color; void run() System.out.println(“我已经开动了 “); void showInfo() System.out.println(“商标:“+brand+“n 颜色:“+color); class Car extends Vehicles private int seats; public Car(S
14、tring brand,String color,int seats) super(brand,color); this.seats = seats; void showCar() super.showInfo(); System.out.println(“座位:“+seats); class Truck extends Vehicles private float load; public Truck(String brand,String color,float load) super(brand,color); this.load = load; void showTruck() sup
15、er.showInfo(); System.out.println(“载重:“+load); public class b01 public static void main(String args) Vehicles f1 = new Vehicles(“ 宝马 “,“白色“); Car f2 = new Car(“法拉利 “,“黑色“,4); Truck f3 = new Truck(“解放“,“绿色“,5000); f1.run(); f1.showInfo(); f2.run(); f2.showCar(); f3.run(); f3.showTruck(); 【练习题】 09.构造方
16、法与重载 定义一个网络用户类,要处理的信息有用户ID、用户密码、 email 地址。在建立 类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID 和用户 密码时必须的,缺省的email 地址是用户 ID 加上字符串 ““ class NetUser private String ID; private String key; private String emailDress; public NetUser(String ID,String key) this.ID = ID; this.key = key; this.emailDress = ID+““; void output
17、() System.out.println(“ID : “+ID+“n用 户 密 码 “+key+“n用 户 地 址 “+emailDress); public class b01 public static void main(String args) NetUser user = new NetUser(“5566“,“yan“); user.output(); 【练习题】 10.构造方法与重载、包 编写 Addition 类,该类中应包含一组实现两数相加运算的重载方法。 实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进 行加法运算后, 返回相加结果。 考虑可能针对不
18、同的数据类型进行计算,重载一 组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。 在 main 方法中创建 Addition 类的实例,分别调用重载方法测试其效果。 应将 Addition 类打入到包中,以自己名字的拼音为包命名。 package yan.cong; class Addition public Addition() void add(int a,int b) int c = a+b; System.out.println(“a+b=“+c); void add(long a,long b) long c = a+b; System.out.println(“a+b=“
19、+c); void add(float a,float b) float c = a+b; System.out.println(“a+b=“+c); void add(double a,double b) double c = a+b; System.out.println(“a+b=“+c); void add(String a,String b) String c = a+b; System.out.println(“a+b=“+c); public class b01 public static void main(String args) Addition m = new Addit
20、ion(); Addition n = new Addition(); m.add(5,6); n.add(“hello“,“world“); 【练习题】 11.构造方法与重载 将上次练习题三中编写的MyTime 类打到以自己名字的拼音命名的包中,并为该 类重载一组构造方法,以方便使用者能够以多种形式初始化该类的实例。 package yan.cong; class MyTime private int hour; private int minute; private int second; public MyTime(int hour,int minute,int second) this
21、.hour = hour; this.minute = minute; this.second = second; public MyTime(int minute,int second) this.minute = minute; this.second = second; void diaplay() System.out.println(“时间: “+hour+“:“+minute+“:“+second ); void addSecond(int sec) second = second+sec; void addMinute(int min) minute = minute+min;
22、void addHour(int hou) hour = hour+hou; void subSecond(int sec) second = second-sec; void subMinute(int min) minute = minute-min; void subHour(int hou) hour = hour-hou; void Test() if(hour=0 else System.out.println(“nFalsen“); public class b01 public static void main(String args) MyTime b = new MyTim
23、e(11,4,55); b.subHour(5); b.subMinute(5); b.subSecond(2); b.diaplay(); b.Test(); 【练习题】 12.构造方法与重载 建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。并通过不同的构 造方法创建事例。 至少要求:汽车能够加速,减速,停车。 要求:命名规范,代码体现层次,有友好的操作提示。 class Car private int tires; private String color; private int load; public Car(int tires) this.tires = tires; Sy
24、stem.out.println(“轮胎个数: “+tires); public Car(String color) this.color = color; System.out.println(“汽车颜色: “+color); public Car(int tires,String color,int load) this(tires); this.color = color; System.out.println(“汽车颜色: “+color); this.load = load; System.out.println(“汽车重量: “+load); void upSpeed() Syst
25、em.out.println(“车正在加速 “); void downSpeed() System.out.println(“车正在减速 “); void stop() System.out.println(“车已经停止了 “); public class b01 public static void main(String args) Car a = new Car(6); Car b = new Car(4,“ 白色 “,4000); a.upSpeed(); b.stop(); 【练习题】 13.构造方法与重载 创建一个类,为该类定义三个构造函数,分别执行下列操作: 1、传递两个整数值并
26、找出其中较大的一个值 2、传递三个 double 值并求出其乘积 3、传递两个字符串值并检查其是否相同 4、在 main 方法中测试构造函数的调用 class Check public Check(int a ,int b) int c=Math.max(a,b); System.out.println(“较大值为: “+c); public Check(double a,double b,double c) double d = a*b*c; System.out.println(“a*b*c = “+d); public Check(String a,String b) boolean c
27、 = a.equals(b); System.out.println(“两字符串相等: “+c); public class b01 public static void main(String args) Check m = new Check(4,8); Check n = new Check(3.3,4.2,4.0); Check p = new Check(“ac“,“ab“); 【练习题】 14.Static关键字与普通变量的区别: 创建一个名称为StaticDemo 的类,并声明一个静态变量和一个普通变量。对变 量分别赋予 10 和 5 的初始值。在 main()方法中输出变量值。
28、 class StaticDemo private static int a=10; private int b=5; public String getInfo() return “a=“+a+“nb=“+b; public class b01 public static void main(String args) StaticDemo m = new StaticDemo(); System.out.println(m.getInfo(); 【练习题】 15.继承: 创建一个名称为MainPackage的包,使它包含MainClass 和 MainSubClass 类。 MainClas
29、s 类应当包含变量声明,其值从构造函数中输出。MainSubClass 类从 MainClass派生而来。试执行下列操作:创建一个名称为SamePackage 的类,使 它导入上述包,并创建一个MainSubClass类的对象。 package MainPackage; class MainClass String str; public MainClass(String str) this.str = str; System.out.println(str); class MainSubClass extends MainClass public MainSubClass(String st
30、r) super(str); System.out.println(“*“); import MainPackage.MainSubClass; class SamePackage MainSubClass b = new MainSubClass(“a;ledkfjl“); 【练习题】 16.包、继承、构造函数 创建一个名称为MainPackage的包,使它包含MainClass 和 MainSubClass 类。 MainClass 类应当包含变量声明,其值从构造方法中输出。MainSubClass 类从 MainClass派生而来。试执行下列操作:创建一个名称为SamePackage 的
31、类,使 它导入上述包,并创建一个MainSubClass类的对象。 【练习题】 17.继承: 创建一个父类和子类, 父类有一个数据成员, 子类继承父类的该数据成员,通过 构造函数初始化并显示该数据成员的值。 class Father int a; public Father(int a) this.a = a; class Son extends Father public Son(int a) super(a); System.out.println(“a=“+a); public class b01 public static void main(String args) Son e =
32、new Son(4); 【练习题】 18.覆盖、继承 建立一个汽车 Auto 类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。 并通过不同的构造方法创建实例。至少要求:汽车能够加速, 减速,停车。 再 定义一个小汽车类Car,继承 Auto,并添加空调、 CD 等成员变量,覆盖加速, 减速的方法、 class Auto int tires; String color; int load; int speed; public Auto(int tires,String color,int load,int speed) this.tires = tires; this.color = co
33、lor; this.load = load; this.speed = speed; void upSpeed() System.out.println(“加速了“); void downSpeed() System.out.println(“减速了“); void stop() System.out.println(“停车了“); void getInfo() System.out.println(“轮胎数: “+tires+“n 颜色: “+color+“n车身重量: “+load+“n 速度“+speed); class Car extends Auto boolean Aircondi
34、tion; boolean CD; public Car(int tires,String color,int load,int speed,boolean Aircondition,boolean CD) super(tires,color,load,speed); this.Aircondition = Aircondition; this.CD = CD; void upSpeed() System.out.println(“开始加速了 “); void downSpeed() System.out.println(“开始减速了 “); void getInfo() System.out
35、.println(“轮胎数: “+tires+“n 颜色: “+color+“n车身重量: “+load+“tn 速度“+speed+“Km/hn 有空调: “+Aircondition+“n 有 CD:“+CD); public class b01 public static void main(String args) Car m = new Car(4,“白色 “,50,100,false,true); m.downSpeed(); m.getInfo(); 【练习题】 19.抽象类与继承 设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类。使用继承将这些 图形分类,找出能作为基类部
36、分的共同特征(如校准点 )和方法 (如画法、初始化 ), 并看看这些图形是否能进一步划分为子类。 本题只考虑实现思想,不考虑具体实现的细节,实现方式可自由发挥。 import java.awt.Point; abstract class Graph public Point center; public Graph(Point center) this.center = center; public abstract void getInfo(); class Rectangle extends Graph private int length; private int width; publ
37、ic Rectangle(Point center,int length,int width) super(center); this.length = length; this.width = width; public void getInfo() System.out.println(“矩形:n“+“ 校准点: “+center +“n 矩形长度: “+length+“n 矩形宽度: “+width); class Circle extends Graph private int radius; public Circle(Point center, int radius) super(
38、center); this.radius = radius; public void getInfo() System.out.println(“圆形:n“+“ 校准点: “+center +“n 圆形半径: “+radius); public class b01 public static void main(String args) Graph a = new Rectangle(new Point(8,8),4,7); a.getInfo(); Graph b = new Circle(new Point(8,8),10); b.getInfo(); 【练习题】 20.抽象类: 创建一个
39、 Vehicle 类并将它声明为抽象类。在Vehicle 类中声明一个 NoOfWheels 方法,使它返回一个字符串值。创建两个类Car 和 Motorbike 从 Vehicle类继承, 并在这两个类中实现NoOfWheels 方法。在 Car 类中,应当显示“四轮车” 信息; 而在 Motorbike 类中,应当显示“双轮车”信息。创建另一个带main 方法的类, 在该类中创建 Car 和 Motorbike 的实例,并在控制台中显示消息。 abstract class Vehicle public abstract String Noofwheels(); class Car exte
40、nds Vehicle int a; int b; public Car(int a,int b) this.a=a; this.b=b; public String Noofwheels() return “四轮车 n 载重: “+a+“n 体积: “+b; class Motorbike extends Vehicle int c; int d; public Motorbike(int c,int d) this.c = c; this.d = d; public String Noofwheels() return “双轮车 n 长度: “+c+“n 高度: “+d; public c
41、lass b01 public static void main(String args) Vehicle m = new Car(88,44); System.out.println(m.Noofwheels(); Vehicle n = new Motorbike(3,4); System.out.println(n.Noofwheels(); 【练习题】 21.抽象类: 创建一个 Vehicle 类并将它声明为抽象类。在Vehicle 类中声明一个 NoOfWheels 方法,使它返回一个字符串值。创建两个类Car 和 Motorbike 从 Vehicle类继承, 并在这两个类中实现N
42、oOfWheels 方法。在 Car 类中,应当显示“四轮车” 信息; 而在 Motorbike 类中,应当显示“双轮车”信息。创建另一个带main 方法的类, 在该类中创建 Car 和 Motorbike 的实例,并在控制台中显示消息。 【练习题】 22.接口: 创建一个名称为Vehicle 的接口,在接口中添加两个带有一个参数的方法start() 和 stop()。在两个名称分别为Bike 和 Bus 的类中实现 Vehicle接口。创建一个名 称为 interfaceDemo的类,在 interfaceDemo的 main()方法中创建 Bike 和 Bus 对 象,并访问 start(
43、)和 stop()方法。 interface Vehicle public abstract String start(boolean a); public abstract String stop(boolean b); class Bike implements Vehicle public String start(boolean a) return a+“车启动了 “; public String stop(boolean b) return b+“车停止了 “; class Bus implements Vehicle public String start(boolean a) r
44、eturn a+“车启动了 “; public String stop(boolean b) return b+“车停止了 “; public class interfaceDemo public static void main(String args) Bike m = new Bike(); System.out.println(“Bike n“+m.start(false)+“n“+m.stop(true); Bus n = new Bus(); System.out.println(“Bus n“+n.start(true)+“n“+n.stop(false); 【练习题】 23.接
45、口: 创建一个名称为Vehicle 的接口,在接口中添加两个带有一个参数的方法start() 和 stop()。在两个名称分别为Bike 和 Bus 的类中实现 Vehicle接口。创建一个名 称为 interfaceDemo的类,在 interfaceDemo的 main()方法中创建 Bike 和 Bus 对 象,并访问 start()和 stop()方法。 【练习题】 24.抽象类、继承、接口综合 设计一个系统: XXX 门的实现过程: 流程: 设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开 门openDoor()和 关 门closeDoor(); 然 后 对
46、门 进 行 另 外 的 功 能 设 计 , 防 盗 -theftproof()、防水 -waterproof()、防弹 -bulletproof()、防火、防锈 要求:利用继承、抽象类、接口的知识设计该门 abstract class Door public abstract void openDoor(); public abstract void closeDoor(); class realDoor extends Door public void openDoor() System.out.println(“ 开门 n“); public void closeDoor() System
47、.out.println(“ 关门 n“); public void theftproof() System.out.println(“ 防盗 n“); public void waterproof() System.out.println(“ 防水 n“); public void bulletproof() System.out.println(“ 防弹 n“); public class b01 public static void main(String args) realDoor d = new realDoor(); d.openDoor(); d.closeDoor(); d.theftproof(); d.waterproof(); d.bulletproof(); 【练习题】 25.抽象类、继承、接口综合 设计一个系统: xxx 纯净水生产线 目前流程是:从某个地方把水取出来,然后经过缓冲,过滤,加热和放糖的步骤 abstract 水 public void 水(); interface 过滤 interface 缓冲 interface 加热 interface 放糖 class 纯净水 1 extends 水 imps 过滤,缓冲
链接地址:https://www.31doc.com/p-5197265.html