贱贱贱我们渐渐失去
2018-08-08 19:24
我希望要的租车代码:
1,封装性 2,继承性 3.接口
qwq我的要求很过分,但是还是忍不住 怎么破?
public interface IZaiHuo { void zaiHuo(); } public interface IZaiRen { void zaiRen(); } public interface IDouZai extends IZaiHuo, IZaiRen { } public abstract class Car { public int number; public String carName; public int price; public String carType ; public abstract void print(); } public class PersonCar extends Car implements IZaiRen { public int capacityPerson; public PersonCar(int number,String carName,int price,int capacityPerson) { this.number=number; this.carName=carName; this.price=price; this.capacityPerson=capacityPerson; carType = "PersonCar"; } public void zaiRen() { System.out.print(" 载人:"+capacityPerson+"人 "); } public void print() { System.out.print(number+". "+carName+" "+price+"元/天 "); this.zaiRen(); } } public class StuffCar extends Car implements IZaiHuo { public int capacityStuff; public StuffCar(int number,String carName,int price,int capacityStuff) { this.number=number; this.carName=carName; this.price=price; this.capacityStuff=capacityStuff; carType = "StuffCar"; } public void zaiHuo() { System.out.print(" 载货:"+capacityStuff+"吨 "); } public void print() { System.out.print(number+". "+carName+" "+price+"元/天 "); this.zaiHuo();; } } public class PersonStuffCar extends Car implements IDouZai { public int capacityPerson; public int capacityStuff; public PersonStuffCar(int number,String carName,int price,int capacityPerson,int capacityStuff) { this.number=number; this.carName=carName; this.price=price; this.capacityPerson=capacityPerson; this.capacityStuff=capacityStuff; carType = "PersonStuffCar"; } public void zaiRen() { System.out.print(" 载人:"+capacityPerson+"人 "); } public void zaiHuo() { System.out.print(" 载货:"+capacityStuff+"吨 "); } public void print() { System.out.print(number+". "+carName+" "+price+"元/天 "); this.zaiRen(); this.zaiHuo(); } } import java.util.Scanner; public class Test { public static void main(String[] args) { System.out.println("欢迎使用答答租车系统:"); System.out.println("您是否要租车:1是 0否"); Scanner scanner = new Scanner(System.in); int sellect = scanner.nextInt(); if (sellect==0) return; int totalPersonC = 0; int totalStuffC = 0; int totalPrice = 0; int pCarNum=0; int sCarNum=0; System.out.println("您可租车的类型及其价目表:"); System.out.println("序号 汽车名称 租金 容量"); Car cars[] =new Car[6]; String pcars[]=new String[6]; String scars[]=new String[6]; cars[0]=new PersonCar(1,"奥迪A4",500,4); cars[1]=new PersonCar(2,"马自达6",400,4); cars[2]=new PersonStuffCar(3,"皮卡雪 ",450,4,2); cars[3]=new PersonCar(4,"金龙 ",800,20); cars[4]=new StuffCar(5,"松花江 ",400,4); cars[5]=new StuffCar(6,"依维柯 ",1000,20); for(Car a : cars) { a.print(); System.out.println(""); //System.out.print(a instanceof PersonCar); //System.out.print(a instanceof StuffCar); //System.out.print(a instanceof PersonStuffCar); } System.out.println("请输入您要租汽车的数量"); int num=scanner.nextInt(); for (int i=1;i<=num;i++) { System.out.println("请输入第"+i+"量车的序号"); int n = scanner.nextInt(); totalPrice+=cars[n-1].price; switch (cars[n-1].carType) { case "PersonCar":pCarNum+=1; pcars[pCarNum]=cars[n-1].carName; totalPersonC+=((PersonCar)cars[n-1]).capacityPerson; break; case "StuffCar":sCarNum+=1; scars[sCarNum]=cars[n-1].carName; totalStuffC+=((StuffCar)cars[n-1]).capacityStuff; break; case "PersonStuffCar": pCarNum+=1; pcars[pCarNum]=cars[n-1].carName; totalPersonC+=((PersonStuffCar)cars[n-1]).capacityPerson; sCarNum+=1; scars[sCarNum]=cars[n-1].carName; totalStuffC+=((PersonStuffCar)cars[n-1]).capacityStuff; } } System.out.println("请输入租车天数:"); totalPrice*=scanner.nextInt(); System.out.println("您的账单:"); System.out.println("***可载人的车有:"); for (String s:pcars) { if(s!=null) System.out.print(s+" "); } System.out.println("共载人:"+totalPersonC+"人"); System.out.println("***可载货的车有:"); for (String s:scars) { if(s!=null) System.out.print(s+" "); } System.out.println("共载货:"+totalStuffC+"吨"); System.out.println("***租车总价格:"+totalPrice+"元"); } }
我的代码 供你参考 封装性的话 get和set方法怕麻烦没有用 你可以自己改改看 下面也有慕友的代码用到了 ~
根据你的要求进行了修改 封装 多态 接口都用到了哦
public interface IZaiRen {
void zaiRen();
}
public interface IZaiHuo {
void zaiHuo();
}
public interface IDouZai extends IZaiHuo, IZaiRen {
}
public abstract class Car {
private int number;
private String carName;
private int price;
private String carType ;
public Car(int number,String carName,int price) {
this.number=number;
this.carName=carName;
this.price=price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getCarType() {
return carType;
}
public void setCarType(String carType) {
this.carType = carType;
}
public abstract void print();
}
public class PersonCar extends Car implements IZaiRen {
public int capacityPerson;
public PersonCar(int number,String carName,int price,int capacityPerson) {
super(number,carName,price);
this.capacityPerson=capacityPerson;
this.setCarType ("PersonCar");
}
public void zaiRen() {
System.out.print(" 载人:"+capacityPerson+"人 ");
}
public void print() {
System.out.print(getNumber()+". "+getCarName()+" "+getPrice()+"元/天 ");
this.zaiRen();
}
}
public class StuffCar extends Car implements IZaiHuo {
public int capacityStuff;
public StuffCar(int number,String carName,int price,int capacityStuff) {
super(number,carName,price);
this.capacityStuff=capacityStuff;
this.setCarType ("StuffCar");
}
public void zaiHuo() {
System.out.print(" 载货:"+capacityStuff+"吨 ");
}
public void print() {
System.out.print(getNumber()+". "+getCarName()+" "+getPrice()+"元/天 ");
this.zaiHuo();;
}
}
public class PersonStuffCar extends Car implements IDouZai {
public int capacityPerson;
public int capacityStuff;
public PersonStuffCar(int number,String carName,int price,int capacityPerson,int capacityStuff) {
super(number,carName,price);
this.capacityPerson=capacityPerson;
this.capacityStuff=capacityStuff;
this.setCarType ("PersonStuffCar");
}
public void zaiRen() {
System.out.print(" 载人:"+capacityPerson+"人 ");
}
public void zaiHuo() {
System.out.print(" 载货:"+capacityStuff+"吨 ");
}
public void print() {
System.out.print(getNumber()+". "+getCarName()+" "+getPrice()+"元/天 ");
this.zaiRen();
this.zaiHuo();
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("欢迎使用答答租车系统:");
System.out.println("您是否要租车:1是 0否");
Scanner scanner = new Scanner(System.in);
int sellect = scanner.nextInt();
if (sellect==0)
return;
int totalPersonC = 0;
int totalStuffC = 0;
int totalPrice = 0;
int pCarNum=0;
int sCarNum=0;
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号 汽车名称 租金 容量");
Car cars[] =new Car[6];
String pcars[]=new String[6];
String scars[]=new String[6];
cars[0]=new PersonCar(1,"奥迪A4",500,4);
cars[1]=new PersonCar(2,"马自达6",400,4);
cars[2]=new PersonStuffCar(3,"皮卡雪 ",450,4,2);
cars[3]=new PersonCar(4,"金龙 ",800,20);
cars[4]=new StuffCar(5,"松花江 ",400,4);
cars[5]=new StuffCar(6,"依维柯 ",1000,20);
for(Car a : cars) {
a.print();
System.out.println("");
//System.out.print(a instanceof PersonCar);
//System.out.print(a instanceof StuffCar);
//System.out.print(a instanceof PersonStuffCar);
}
System.out.println("请输入您要租汽车的数量");
int num=scanner.nextInt();
for (int i=1;i<=num;i++) {
System.out.println("请输入第"+i+"量车的序号");
int n = scanner.nextInt();
totalPrice+=cars[n-1].getPrice();
switch (cars[n-1].getCarType()) {
case "PersonCar":pCarNum+=1;
pcars[pCarNum]=cars[n-1].getCarName();
totalPersonC+=((PersonCar)cars[n-1]).capacityPerson;
break;
case "StuffCar":sCarNum+=1;
scars[sCarNum]=cars[n-1].getCarName();
totalStuffC+=((StuffCar)cars[n-1]).capacityStuff;
break;
case "PersonStuffCar":
pCarNum+=1;
pcars[pCarNum]=cars[n-1].getCarName();
totalPersonC+=((PersonStuffCar)cars[n-1]).capacityPerson;
sCarNum+=1;
scars[sCarNum]=cars[n-1].getCarName();
totalStuffC+=((PersonStuffCar)cars[n-1]).capacityStuff;
}
}
System.out.println("请输入租车天数:");
totalPrice*=scanner.nextInt();
System.out.println("您的账单:");
System.out.println("***可载人的车有:");
for (String s:pcars) {
if(s!=null)
System.out.print(s+" ");
}
System.out.println("共载人:"+totalPersonC+"人");
System.out.println("***可载货的车有:");
for (String s:scars) {
if(s!=null)
System.out.print(s+" ");
}
System.out.println("共载货:"+totalStuffC+"吨");
System.out.println("***租车总价格:"+totalPrice+"元");
}
}
用接口好像也不需要特意去定义常量还有必须实现的方法啊
我也不会实现接口,我直接定义主类,定义参数进行封装,然后在子类带参构造函数中用主类的setter初始化参数就好了。
我希望能够更好地理解和应用接口,最主要的还是熟悉面向对象
接口其实没必要
Java入门第二季 升级版
531022 学习 · 6160 问题
相似问题