2-16 车辆管理,麻烦老师看看,谢谢。
public class NonMotor { // 私有属性:品牌、颜色、轮子(默认2个)、座椅(默认 1个) private String label; private String color; private int wheel; private int seat; // 公有的get***/set***方法完成属性封装 public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } 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 getSeat() { return seat; } public void setSeat(int seat) { this.seat = seat; } // 无参构造方法 public NonMotor() { } // 双参构造方法,完成对品牌和颜色的赋值 { this.seat = 1; this.wheel = 2; } public NonMotor(String Label, String Color) { this.setColor(Color); this.setLabel(Label); } // 四参构造方法,分别对所有属性赋值 public NonMotor(String Label, String Color, int Wheel, int Seat) { this.setColor(Color); this.setLabel(Label); this.setSeat(Seat); this.setWheel(Wheel); } // 方法:运行,描述内容为:这是一辆**颜色的,**牌的非机动车,有**个轮子,有**个座椅的非机动车。其中**的数据由属性提供 public String work() { return "这是" + this.label + "牌" + color + "颜色的非机动车," + "有" + seat + "个座位和" + this.wheel + "个车轮"; } } public class Bicycle extends NonMotor { // 在构造方法中调用父类多参构造,完成属性赋值 public Bicycle(String Label,String Color){ super(Label,Color); } // 重写运行方法,描述内容为:这是一辆**颜色的,**牌的非机动车,有**个轮子,有**个座椅的非机动车。其中**的数据由属性提供 @Override public String work() { return "这是" + this.getLabel() + "牌" + this.getColor() + "颜色的非机动车," + "有" + this.getSeat() + "个座位和" + this.getWheel() + "个车轮"; } } public class ElectricVehicle extends NonMotor { // 私有属性:电池品牌 private String baterry; // 公有的get***/set***方法完成属性封装 public String getBaterry() { return baterry; } public void setBaterry(String baterry) { this.baterry = baterry; } public ElectricVehicle(String Battery) { this.setBaterry(Battery); } // 重写运行方法,描述内容为:这是一辆使用**牌电池的电动车。其中**的数据由属性提供 @Override public String work() { // TODO Auto-generated method stub return "这是一辆使用" + this.baterry + "牌电池的电动车"; } } public class Tricycle extends NonMotor { // 在无参构造中实现对轮子属性值进行修改 public Tricycle() { super.setSeat(3); } // 重写运行方法,描述内容为:三轮车是一款有**个轮子的非机动车。其中**的数据由属性提供 @Override public String work() { // TODO Auto-generated method stub return "三轮车是一款有"+this.getSeat()+"个轮子的非机动车"; } } public class Test { public static void main(String[]args){ NonMotor x=new NonMotor("天马牌","红色",2,1); System.out.print("父类信息测试:"); System.out.println(x.work()); Bicycle bi=new Bicycle("捷安特","黄色"); System.out.print("自行车类信息测试:"); System.out.println(bi.work()); ElectricVehicle ev=new ElectricVehicle("比亚迪"); System.out.print("电动车类信息测试:"); System.out.println(ev.work()); Tricycle tri=new Tricycle(); System.out.print("三轮车类信息测试:"); System.out.println(tri.work()); } }
正在回答
老铁 没毛病!只不过我好像记得老师说过构造器最好要写到前面哦。还有Bicycle的work方法既然和父类一样,就可以不用重写,直接用父类的就可以了吧。
老铁,其中有几处错误
这里在set方法中对属性进行赋值,然后 if (this.wheel >= 2 && this.wheel<=4) 中把this去掉就对了
public int getWheel() {
return wheel;
}
public void setWheel(int wheel) {
if (wheel >= 2 && wheel<=4)
this.wheel = wheel;
else
this.wheel = 2; this.wheel = wheel;
}
还有就是
public class Tricycle extends NonMotor {
// 在无参构造中实现对轮子属性值进行修改
public Tricycle() {
super.setSeat(3);(这里不是对Seat赋值3,应该是对wheel进行赋值3,应该改为 super.setWheel(3))
}
// 重写运行方法,描述内容为:三轮车是一款有**个轮子的非机动车。其中**的数据由属性提供
@Override
public String work() {
// TODO Auto-generated method stub
return "三轮车是一款有"+this.getSeat()+"个轮子的非机动车";(改为return "三轮车是一款有"+this.getWheel()+"个轮子的非机动车";
如果帮到你,请采纳谢谢
老铁 没毛病
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星