weixin_39902941
阿123斌
2017-09-20 12:36

请教下这样写有没有什么不好的地方.谢谢

  • 抽象类 继承

1)这是抽象类
package tests;

//抽象 类
public abstract class Carplay {

// 汽车共有的属性
private String no;
private String brand;
public int calRent;

// 取得封装属性getter/setter
public String getNo() {
    return no;// 车牌号
}

public void setNo(String no) {
    this.no = no;
}

public String getBrand() {
    return brand;// 车的品牌
}

public void setBrand(String brand) {
    this.brand = brand;
}

public abstract int calRent(int days);

}

2)这是子类
package tests;

final public class jChe extends Carplay {
// 汽车的属性
private String type;// 品牌:

public jChe() {

}

public jChe(String newType) {
    this.type = newType;
}

@Override // 子类重写父类
public int calRent(int days) {
    if (type.equals("宝马")) {
        days = 500 * days;
    }
    if (type.equals("林荫大道")) {
        System.out.println("顾客您好!您需要支付的租赁费用是:");
        days = 600 * days;
    } else if (type.equals("商务舱GL8")) {
        System.out.println("顾客您好!您需要支付的租赁费用是:");
        days = 300 * days;
    }
    return days;
}

}

3)
这是子类
package tests;

public final class kCar extends Carplay {
// 客车的属性
private int seatCount;

public kCar() {

}

//
public kCar(int newSeatCount) {

    this.seatCount = newSeatCount;
}

//子类重写父类
public int calRent(int days) {

    if (seatCount <= 16) {
        System.out.println(days = 800 * days);
    } else {
        System.out.println(days = 1500 * days);
    }
    return days;

}

}

4)
这是测试类
package tests;

import java.util.Scanner;

public class TestCar {

public static void main(String[] args) {

    jChe j = new jChe();

    System.out.println("欢迎您来到汽车租赁公司!!!");
    System.out.print("请输入要租赁的天数:");
    Scanner input = new Scanner(System.in);
    int day = input.nextInt();

    System.out.print("请输入要租赁的汽车类型:1.轿车\t2.客车");
    int numb = input.nextInt();

    // 轿车类
    while (numb == 1) {// 如果输入的值是1
        System.out.print("请输入要租赁的汽车品牌:");

        String num1 = input.next();

        if (num1.equals("宝马")) {// 如果用户输入的品牌是宝马

            j = new jChe(num1);// 则把值赋给轿车类
            System.out.println("顾客您好!您需要支付的租赁费用是:");

            System.out.println(j.calRent(day));// 调用轿车类的方法

            j.setNo("京BU1452");
            System.out.println("分配给您的汽车牌号是:" + j.getNo());

        } else if (num1.equals("别克")) {// 如果用户输入的是品牌是别克

            System.out.println("请输入轿车的型号:");
            String name = input.next();// 再进一步判断是哪个型号

            j = new jChe(name);// 把输入的型号赋给轿车类
            System.out.println(j.calRent(day));// 调用轿车类方法

            j.setNo("京AU1652");
            System.out.println("分配给您的汽车牌号是:" + j.getNo());
        }

        else {
            System.out.println("Sorry,本公司正在引进更多的租赁汽车,敬请期待!!!");
        }
        break;
    } // while汽车类结束了

    // 客车类
    while (numb == 2) {

        kCar k = new kCar();

        System.out.println("请输入要租赁的客车品牌:");
        String name = input.next();

        System.out.println("请输入客车的座位数:");
        int sitDown = input.nextInt();

        k = new kCar(sitDown);
        if (sitDown <= 16 && name.equals("金杯")) {
            System.out.println("顾客您好!您需要支付的租赁费用是:" + k.calRent(day));

            j.setNo("京AU152");
            System.out.println("分配给您的汽车牌号是:" + j.getNo());

        } else if (sitDown > 16 && name.equals("金龙")) {
            System.out.println("顾客您好!您需要支付的租赁费用是:" + k.calRent(day));

            j.setNo("香SU1452");
            System.out.println("分配给您的汽车牌号是:" + j.getNo());
        } else {
            System.out.println("Sorry,本公司正在引进更多的租赁汽车,敬请期待!!!");
        }

        break;

    } // while客车类结束了
    System.out.println("谢谢您的光临,一路顺风!");

}

}
以上就是了.可以加个QQ:651438778也可以直接回复消息

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换