我正在做下面的家庭作业(我对Java还是个新手……),我对写LuxuryCarRental有一些疑问……我不确定我在CarRentall的工作是否正确。我还没有到UseCarRental。
创建一个名为 CarRental 的类,其中包含以下字段:租用者姓名、邮政编码、汽车大小、租车费、天数出租和总计出租费。
该类包含一个构造函数,它需要除总费用以外的所有租金数据,总费用根据汽车的大小计算:经济型为29.99美元/天,中型为38.99美元/日,全尺寸为43.50美元/天。该类还包括一个显示所有租赁数据的display()方法。
创建一个名为LuxuryCarrent的子类。该类将租赁费设置为每天79.99美元。
编写一个名为UseCarRental的应用程序,提示用户输入租车者的姓名、邮政编码、要租车的大小以及他们想租的天数。
您的应用程序应显示总租赁费用。
确保您的应用程序同时测试CarRental和LuxuryCarRentall。
租车:https://pastebin.com/fq1wJF1s豪华租车:https://pastebin.com/xBAK6NTy
package usecarrental;
public class CarRental
{
private String renterName = "";
private int rentalZipCode = 00000;
private String rentalCarSize = "";
private double rentalFeeDaily;
private int numDaysRented = 0;
private double totalRentalFee;
public CarRental(String name, int zipcode, int days, String carsize)
{
renterName = name;
rentalZipCode = zipcode;
rentalCarSize = carsize;
numDaysRented = days;
}
public void setrenterName(String name)
{
renterName = name;
}
public void setrentalZipCode(int zipcode)
{
rentalZipCode = zipcode;
}
public void setrentalCarSize(String carsize)
{
rentalCarSize = carsize;
}
public void setnumDaysRented(int days)
{
numDaysRented = days;
}
html" target="_blank">public String getrenterName()
{
return renterName;
}
public int getrentalZipCode()
{
return rentalZipCode;
}
public String getrentalCarSize()
{
return rentalCarSize;
}
public int getnumDaysRented()
{
return numDaysRented;
}
public double gettotalRentalFee()
{
return numDaysRented * rentalFeeDaily;
}
public double getrentalFeeDaily(String rentalCarSize)
{
switch (rentalCarSize)
{
case "Economy":
rentalFeeDaily = 29.99;
break;
case "Midsize":
rentalFeeDaily = 38.99;
break;
case "Fullsize":
rentalFeeDaily = 43.50;
break;
}
return rentalFeeDaily;
}
public void display()
{
System.out.println(
"Customer Details" +
"\nName = " + getrenterName() +
"\nZipcode = " + rentalZipCode +
"\nCar Size = " + getrentalCarSize() +
"\nRental Fee = " + rentalFeeDaily + "/daily" +
"\nRental Length = " + numDaysRented +
"\nTotal Fee + " + totalRentalFee
);
}
}
package usecarrental;
public class LuxuryCarRental extends CarRental
{
public LuxuryCarRental(String carsize, int days)
{
super(carsize, days);
}
public void computetotal1()
{
super.computetotal(days);
rentalFeeDaily = 79.99;
totalRentalFee = rentalFeeDaily;
}
}
属性和类常量:
首先,您不必在创建类属性时为其赋值。为此,请使用构造函数。
其次,这些属性应该受到保护,因为< code > luxury currental 类将在以后继承它们。
您不需要< code>rentalFeeDaily和< code>totalRentalFee属性。
属性变成了
protected String renterName;
protected int rentalZipCode;
protected String rentalCarSize;
protected int numDaysRented;
您可以从< code>getRentalFeeDaily()方法获取< code>rentalFeeDaily,从< code>totalRentalFee()方法获取< code>totalRentalFee。
然后把它们放在 display()
方法中:
public void display()
{
System.out.println(
"Customer Details" +
"\nName = " + getrenterName() +
"\nZipcode = " + rentalZipCode +
"\nCar Size = " + getrentalCarSize() +
"\nRental Fee = " + getRentalFeeDaily + "/daily" +
"\nRental Length = " + numDaysRented +
"\nTotal Fee + " + totalRentalFee
);
}
更好的做法是将您在类中使用的常数作为类常数。
public static final double ECONOMY_FEE = 29.99;
public static final double MIDSIZE_FEE = 38.99;
public static final double FULLSIZE_FEE = 43.50;
public static final double LUXURY_FEE = 79.99;
在您的getRentalFeeDaily()
中:
public double getRentalFeeDaily() {
double rentalFeeDaily = 0;
switch (rentalCarSize) {
case "Economy":
rentalFeeDaily = ECONOMY_FEE;
break;
case "Midsize":
rentalFeeDaily = MIDSIZE_FEE;
break;
case "Fullsize":
rentalFeeDaily = FULLSIZE_FEE;
break;
case "Luxury":
rentalFeeDaily = LUXURY_FEE;
}
return rentalFeeDaily;
}
为什么要给您的getRentalFeeDaily()
方法一个String参数?您的rentalCarSize
是类中的一个属性,您可以将其用于访问此方法的对象实例。
豪华汽车租赁类
豪华汽车租赁
是一种CarRental
您不需要为
LuxuryCarrent
类添加任何其他属性。
public class LuxuryCarRental extends CarRental {
public LuxuryCarRental(String name, int zipcode, int days) {
super(name, zipcode, days, "Luxury");
}
}
在创建
LuxuryCarrent
对象时,您也不必给出rentalCarSize
字符串,因为您将自己将其作为“Luxury”提供给超类构造函数。
因此,稍后当您稍后创建豪华
汽车出租
对象并希望计算其总费用价格时:
构造器将“Luxury”作为retalCarSize
属性
该字符串将被赋予超类中的方法
该方法将使用“luxury”属性从getRentalFeeDaily()
获取豪华车费用后返回总费用
使用汽车租赁类
public class UseCarRental {
public static void main(String[] args) {
CarRental cr = new CarRental("Honda", 1234, 10, "Economy");
LuxuryCarRental lcr = new LuxuryCarRental("Jaguar", 5678, 10);
System.out.println(cr.totalRentalFee());
System.out.println(lcr.totalRentalFee());
}
}
这应该足够了。
背景:当你从中介公司租车时,钥匙圈上有几条信息:车牌、品牌和年份,通常还有一个特殊的代码。该代码可用于公司计算机内的某些数据处理。本实验室将练习从车牌中确定特殊的租车代码。 工作分配: 以下步骤序列将用于将示例车牌转换为汽车租赁代码。 a、 车牌由3个字母后跟一个空格,再后跟一个3位整数组成。例如,CPR 607。 b、 将3个字母的ASCII值相加,67 80 82=229。 c.将字母之和加到
电话面,周一上午给我打电话约的周二下午 面试官拷打的挺多的,我还是第一次遇到这么不温柔的面试官 问题一个接着一个的抛 我太菜了给我问蒙了都 对深蓝汽车了解吗 接受工作地点在重庆吗 ==和equals的区别 Integer a=200和Integer b=200用equals比较和用==比较分别是true还是false等等一系列(接连拷打) 迭代器模式,为啥不用for循环 工厂模式和抽象工厂模式 r
本文向大家介绍C#实现简单的汽车租赁系统,包括了C#实现简单的汽车租赁系统的使用技巧和注意事项,需要的朋友参考一下 最近学习了继承,多态,集合,设计模式,有一个汽车租凭系统,给大家分享一下: 我们首先来看看我们这个系统的效果 1.做一个项目,我们首先对项目进行分析 根据我们最近学的知识,我们可以看出继承,多态,集合,设计模式,我们都能用到 我们把所需要的类和简单模式中的“简单工厂”的工厂准备好
上正文: 1. == equals (√) 2.出题:Integer a = 100,Integer b = 100.....balabala.....就是一些Integer和int这些的比较,equals,==(答上来了,但是他问我为啥。我说是equals比较的是值,他问我为啥。说实话我很懵逼。下来复盘的时候才get应该是想问我拆箱装箱,Integercache...其实是想到了但是没敢说) 3
问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方
本小节我们将学习 Java 的继承,通过本小节的学习,你将知道什么是继承,继承有什么特点,如何实现继承,方法重写的概念和实现,方法重写和方法重载是比较容易混淆的概念,我们也会介绍两个概念的区别,这些都是本小节的重点,本小节的最后我们还会介绍 super 关键字以及 final 关键字。 1. 概念和特点 1.1 概念 继承是面向对象软件技术当中的一个概念。如果一个类别 B “继承自” 另一个类别