継承したクラスを作成し、表示する
練習問題1
下記のCarクラスを継承したTruckクラスを作成し、実行画面のように表示させる。
トラックに関するTruckクラスの構成
Carクラス
{
private double fuelRest;
private double fuelRatio;
private double fuelMax;
public Car(double fRest, double fRatio, double fMax)
{
fuelRest = fRest;
fuelRatio = fRatio;
fuelMax = fMax;
if(fuelMax < 0){
fuelMax = 0;
}
if(fuelRest > fuelMax){
fuelRest = fuelMax;
}
if(fuelRatio < 0){
fuelRatio = 0;
}
}
public Car(double fRatio, double fMax)
{
fuelRest = 0.0;
fuelRatio = fRatio;
fuelMax = fMax;
if(fuelMax < 0){
fuelMax = 0;
}
if(fuelRatio < 0){
fuelRatio = 0;
}
}
public void displayFuel()
{
System.out.println("現在の燃料は " + fuelRest + " リットルです");
}
public void addFuel(double fuel)
{
fuelRest += fuel;
if(fuelRest > fuelMax){
fuelRest = fuelMax;
}
}
public void run(double distance)
{
fuelRest = fuelRest - distance / fuelRatio;
if(fuelRest < 0){
fuelRest = 0;
}
}
public void addFuel()
{
fuelRest = fuelMax;
}
}
実行画面
現在の燃料は40.0リットルです。
210キロ走行します。
現在の燃料は、20.0リットルです。
1000キロの荷物を積みます。
現在の積載量は1000キロです。
荷物を全て降ろします。
現在の積載量は0キロです。
解答例
{
private double fuelRest;
private double fuelRatio;
private double fuelMax;
public Car(double fRest, double fRatio, double fMax)
{
fuelRest = fRest;
fuelRatio = fRatio;
fuelMax = fMax;
if(fuelMax < 0){
fuelMax = 0;
}
if(fuelRest > fuelMax){
fuelRest = fuelMax;
}
if(fuelRatio < 0){
fuelRatio = 0;
}
}
public Car(double fRatio, double fMax)
{
fuelRest = 0.0;
fuelRatio = fRatio;
fuelMax = fMax;
if(fuelMax < 0){
fuelMax = 0;
}
if(fuelRatio < 0){
fuelRatio = 0;
}
}
public void displayFuel()
{
System.out.println("現在の燃料は " + fuelRest + " リットルです");
}
public void addFuel(double fuel)
{
fuelRest += fuel;
if(fuelRest > fuelMax){
fuelRest = fuelMax;
}
}
public void run(double distance)
{
fuelRest = fuelRest - distance / fuelRatio;
if(fuelRest < 0){
fuelRest = 0;
}
}
public void addFuel()
{
fuelRest = fuelMax;
}
}
{
private int amountMax;
private int amount;
public Truck(int aMax, double fRatio, double fMax)
{
super( fRatio, fMax );
amountMax = aMax;
if(amountMax < 0){
amountMax = 0;
}
}
public void loadGoods(int a)
{
amount += a;
if(amount > amountMax){
amount = amountMax;
}
}
public void unloadGoods(int a)
{
amount -= a;
if(amount < 0){
amount = 0;
}
}
public void unloadGoods()
{
amount = 0;
}
public void displayAmount()
{
System.out.println("現在の積載量は " + amount + " キロです。");
}
}
{
public static void main(String[] args)
{
Truck truck = new Truck(4000, 10.5, 40.0);
System.out.println("40リットル給油します。");
truck.addFuel(40.0);
truck.displayFuel();
System.out.println("210キロ走行します。");
truck.run(210);
truck.displayFuel();
System.out.println("1000キロの荷物を積みます。");
truck.loadGoods(1000);
truck.displayAmount();
System.out.println("荷物を全て降ろします。");
truck.unloadGoods();
truck.displayAmount();
}
}