一.编程练习:某公司要开发
“
XX⻋⾏管理系统
”
,请使⽤⾯向对象的思想,设计⾃定义类描述⾃⾏⻋、电动⻋和三轮⻋。
程序参考运⾏效果图如下:
任务
任务分析;
第⼀
步:分析⾃⾏⻋、电动⻋和三轮⻋的共性:
1.
都是⾮机动⻋,具有⾮机动⻋的基本特征
2.
都有运⾏的⽅法
第⼆步:根据共性,定义⾮机动⻋
属性:品牌、颜⾊、轮⼦(默认2个)、座椅(默认 1个)
⽅法:
1.
编写⽆参构造⽅法、双参构造⽅法和四参构造⽅法,其中,在双参构造⽅法中,完成对品牌和颜⾊的赋值;在四参构造⽅法中,完成对所有属性的赋值
2.
编写运⾏的⽅法,描述内容为:这是⼀
辆
**
颜⾊的,
**
牌的⾮机动⻋,有
**
个轮⼦,有
**
个座椅的
⾮机动⻋。其中
**
的数据由属性提供
第三步:定义⾃⾏⻋、电动⻋和三轮⻋分别继承⾃⾏⻋类,要求:
⾃⾏⻋类:
1.
在构造⽅法中调⽤⽗类多参构造,完成属性赋值
2.
重写运⾏⽅法,描述内容为:这是⼀
辆
**
颜⾊的,
**
牌的⾃⾏⻋。其中
**
的数据由属性提供
电动⻋:
1.
增加
“
电池品牌
”
属性
2.
重写运⾏⽅法,描述内容为:这是⼀
辆使⽤
**
牌电池的电动⻋。其中
**
的数据由属性提供
三轮⻋:
1.
在⽆参构造中实现对轮⼦属性值进⾏修改
2.
重写运⾏⽅法,描述内容为:三轮⻋是⼀
款有
**
个轮⼦的⾮机动⻋。其中
**由属性提供
二.运行代码。
1.Test.java//测试类
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
NoVehicle nh=new NoVehicle("天宇","红",4,2);
nh.describe();
Bike bk=new Bike("捷安特","黄");
bk.describe();
ElectricCar ec=new ElectricCar("飞鸽");
ec.describe();
Tricycle ty=new Tricycle();
ty.describe();
}
}
2.NoVehicle.java//非机动车 //父类
public class NoVehicle {
private String brand;
private String color;
private int wheel;
private int Chair;
//无参构造方法
public NoVehicle() {
}
//双参构造方法,完成对品牌和颜色的赋值
public NoVehicle(String brand, String color) {
this.setBrand(brand);
this.setColor(color);
}
//四参构造方法,完成对所有属性的赋值
public NoVehicle(String brand, String color, int wheel, int chair) {
this.setBrand(brand);
this.setColor(color);
this.setWheel(wheel);
this.setChair(chair);
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getWheel() {
return wheel;
}
public void setWheel(int wheel) {
this.wheel = wheel;
}
public int getChair() {
return Chair;
}
public void setChair(int chair) {
Chair = chair;
}
public void describe() {
System.out.println("父类信息测试:这是一辆" + this.getColor() + "颜色的," + this.getBrand() + "牌的非机动车,有" + this.getWheel() + "个轮子,有"
+ this.getChair() + "个座椅");
}
}
2.Bike.java //自行车类 //子类
public class Bike extends NoVehicle {
public Bike() {
}
//子类默认调用父类的无参构造方法
public Bike(String brand,String color) {
super(brand,color);
}
public void describe() {
System.out.println("自行车类信息测试:这是一辆" + super.getColor() + "颜色的," + super.getBrand() + "牌的自行车");
}
}
3.Electric.java //电动车类 //子类
public class ElectricCar extends NoVehicle {
private String batterybrand;
//无参构造方法
public ElectricCar(String batterybrand) {
this.setBatterybrand(batterybrand);
}
public String getBatterybrand() {
return batterybrand;
}
public void setBatterybrand(String batterybrand) {
this.batterybrand = batterybrand;
}
public void describe() {
System.out.println("电动车类信息测试:这是一辆使用"+this.getBatterybrand()+"牌电池的电动车");
}
}
4.Tricycle.java //三轮车类,//子类
public class Tricycle extends NoVehicle{
//无参构造方法
public Tricycle() {
super.setWheel(3);
}
public void describe() {
System.out.println("三轮车类信息测试:三轮车是一款有"+this.getWheel()+"个轮子的非机动车");
}
}
5.运行图片