当前位置:文档之家› 面向对象基础_参考题答案

面向对象基础_参考题答案

一、【必做题】1.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重(2)定义一个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。

(答案:Person.java、PersonCreate.java)2.(1)定义一个人类Person:1)定义一个方法sayHello(),可以向对方发出问候语“hello,my name is XXX”2)有三个属性:名字、身高、体重3)通过构造方法,分别给三个属性赋值(2)定义一个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调用对象的sayHello()方法。

(答案:Constructor.java、或者是Person3.java)3.(1)定义一个矩形类Rectangle:1)定义三个方法:getArea()求面积、getPer()求周长,showAll()分别在控制台输出长、宽、面积、周长。

2)有2个属性:长length、宽width3)通过构造方法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(int x0,y0),以及一个movePoint(int dx,int dy)方法实现点的位置移动。

()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写一个程序,创建两个Point对象p1、p2,分别调研movePoint方法后,打印p1和p2的坐标。

public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}6.(1)定义一个动物类Creature1)定义一个方法setSnarl(Cat cat)可以设置动物发出猫的声音2)setSnarl(Dog dog)可以设置动物发出狗的声音3)定义一个outPut()方法,可以输出动物的声音(2)要求定义一个猫类Cat,具有猫的声音,将猫类传入动物类Creature的吼叫方法setSnarl(Cat cat)可以设置动物发出猫的声音(3)要求定义一个狗类Dog,具有狗的声音,将狗类传入动物类Creature的吼叫方法setSnarlDog dog)可以设置动物发出狗的声音(4)定义一个Sound类,在main方法里调用Creature类的setSnarl()和outPut()方法分别设置动物的声音和输出动物的声音效果显示:7.定义一个圆类Circle,描述圆对象。

圆有一个属性radius表示半径,还有一个findArea 方法用于计算圆的面积。

定义一个测试类。

给半径赋值为5,并且输出圆的面积。

}8、定义一个笔记本类,该类有颜色(char)和cpu型号(int)两个属性。

(1)无参和有参的两个构造方法;有参构造方法可以在创建对象的同时为每个属性赋值;(2) 输出笔记本信息的方法然后编写一个测试类,测试笔记本类的各个方法。

public class ComputeTest {public static void main(String[] args) {Computer c1 = new Computer();c1.showComputer();Computer c2 = new Computer('红', 32);c2.showComputer();}}class Computer {private char color;private int cpuNum;public Computer() {}public Computer(char color, int cpuNum) {this.color = color;this.cpuNum = cpuNum;}public char getColor() {return color;}public void setColor(char color) {this.color = color;}public int getCpuNum() {return cpuNum;}public void setCpuNum(int cpuNum) {this.cpuNum = cpuNum;}public void showComputer() {System.out.println("笔记本的颜色:" + getColor());System.out.println("笔记本的CPU型号:" + getCpuNum());}}9.定义一个汽车类Vehicle,要求如下:(1)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型),并且所有属性为私有。

(2)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。

(3)为私有属性提供访问器方法。

注意:汽车品牌一旦初始化之后不能修改。

(4)定义一个一般方法run(),用打印语句描述汽车奔跑的功能定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。

public class Vehicle {private String brand;private String color;private double speed;Vehicle(){}Vehicle(String brand,String color){this.brand = brand;this.color = color;speed = 0;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public double getSpeed() {return speed;}public void setSpeed(double speed) {this.speed = speed;}public void run(){System.out.println(getColor()+"的"+getBrand()+"的速度是"+getSpeed());}public String getBrand() {return brand;}10. 定义一个时间类,提供设定时间和显示时间的方法,其中设定时间的方法需要校验数据的正确性,并在main方法中验证。

11.设计BOOK类,包括ISBN号(string)、书名(string)、作者(string)以及表示是否已借出的成员(bool)。

创建返回这些成员的访问方法,以及借书还书的方法。

12、为图书馆创建一个Patron类,包括读者姓名、图书证号以及借阅费用(如果欠费的话)。

创建设定借书费的方法。

定义一个方法,返回一个布尔值,表示读者是否欠费。

public class Patron {private String name;private String bookNum;private double money;public Patron(String name, String bookNum, double money) { = name;this.bookNum = bookNum;this.money = money;}public boolean isOver() {return money > 0 ? true : false;}}二、【选做题】1、(1)编写一个时间类MyTime,包含一个构造方法,3个私有成员变量hour,minute,second以及与它们相对应的get与set方法(如hour有getHour和setHour方法,分别表示获得和设置hour),再加上一个转换成字符串的方法toString。

(2)编写一个日期类MyDate,包含一个构造方法,3个私有成员变量year,month,day以及与它们相对应的get与set方法,再加上一个转换成字符串的方法toString。

(3)编写一个FullTime类,包含一个MyTime类型的私有成员变量time和一个MyDate类型的成员变量date,以及与它们相对应的get与set方法,一个构造方法,再加上一个转换成字符串的方法toString。

(4)假设当前时间是2002年7月30日22点12分35秒,编写一个程序,用FullTime类设置时间为以上时间,并打印。

public class MytimeTest {public static void main(String[] args) {MyTime myTime = new MyTime();myTime.setHour(20);myTime.setMinute(20);myTime.setSecond(18);MyDate myDate = new MyDate();myDate.setYear(2012);myDate.setMonth(4);myDate.setDay(10);System.out.println(myDate.toString() + myTime.toString());}}class MyTime {private int hour;private int minute;private int second;public int getHour() {return hour;}public void setHour(int hour) {this.hour = hour;}public int getMinute() {return minute;}public void setMinute(int minute) {this.minute = minute;}public int getSecond() {return second;}public void setSecond(int second) {this.second = second;}@Overridepublic String toString() {return hour + "点" + minute + "分" + second + "秒";}}class MyDate {private int year;private int month;private int day;public int getYear() {return year;}public void setYear(int year) {this.year = year;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}@Overridepublic String toString() {return year + "年" + month + "月" + day + "日";}}2、设计一个类Student,该类包括姓名、学号和成绩。

相关主题