質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

継承

継承(インヘリタンス)はオブジェクト指向プログラミングに存在するシステムです。継承はオブジェクトが各自定義する必要をなくし、継承元のオブジェクトで定義されている内容を引き継ぎます。

Q&A

1回答

801閲覧

javaの継承について

wa3

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

継承

継承(インヘリタンス)はオブジェクト指向プログラミングに存在するシステムです。継承はオブジェクトが各自定義する必要をなくし、継承元のオブジェクトで定義されている内容を引き継ぎます。

0グッド

0クリップ

投稿2020/05/31 01:38

編集2020/05/31 01:52

前提・実現したいこと

それぞれのgetFuelConsumptionOldRegulations()とgetFuelConsumptionNewRegulations()を出力したい

発生している問題・エラーメッセージ

OldRegulations:0.0 NewRegulations:0.0 OldRegulations:0.0 NewRegulations:0.0 OldRegulations:0.0 NewRegulations:0.0 OldRegulations:0.0 NewRegulations:0.0

該当のソースコード

java

1class FuelConsumptionCalculation { 2 private float fuelConsumptionOldRegulation = 0; 3 private float fuelConsumptionNewRegulation = 0; 4 private SimpleCar[] cars; 5 6 FuelConsumptionCalculation() { 7 8 } 9 FuelConsumptionCalculation(SimpleCar[] cars) { 10 this.cars =cars; 11 } 12private void calculateFuelConsumption() { 13 for(int i=0;i<cars.length;i++) { 14 this.fuelConsumptionOldRegulation += cars[i].calculateFuelConsumptionOldRegulations(); 15 this.fuelConsumptionNewRegulation += cars[i].calculateFuelConsumptionNewRegulations(); 16 } 17 } 18 19 float getFuelConsumptionOldRegulations() { 20 return this.fuelConsumptionOldRegulation; 21 } 22 float getFuelConsumptionNewRegulations() { 23 return this.fuelConsumptionNewRegulation; 24 } 25 public static void main(String[] args) { 26 SimpleCar[] cars = { 27 new DeluxeCar("Honda",14f,10.5f), 28 new SimpleCar("Nissan",13.0f), 29 new AdvancedCar("Toyota",15.5f,9.5f), 30 new DeluxeCar("Van",10.5f,6f) 31 }; 32 33 for(int i=0;i<cars.length;i++){ 34 System.out.println( "OldRegulations:" + cars[i].calculateFuelConsumptionOldRegulations() + " NewRegulations:" + cars[i].calculateFuelConsumptionNewRegulations() + "\n"); 35 } 36 } 37 } 38class SimpleCar { 39private String carname; 40private int distance; 41private float Fueleco; 42public SimpleCar(){ 43this.distance =0; 44this.Fueleco = 0; 45} 46 public SimpleCar(String name,float fc) { 47 this.carname= name; 48 this.Fueleco = fc; 49 } 50 public void setReport(int kilo){ 51 this.distance = kilo; 52 } 53 public float calculateFuelConsumptionOldRegulations(){ 54 return this.distance/this.Fueleco; 55 } 56 public float calculateFuelConsumptionNewRegulations() { 57 return this.distance/this.Fueleco; 58 } 59 60} 61class AdvancedCar extends SimpleCar{ 62private int begintime,finshtime; 63private float FuelecoAir; 64public AdvancedCar(){ 65super(); 66this.begintime = 0; 67this.finshtime = 0; 68this.FuelecoAir = 0; 69 70} 71 public AdvancedCar(String name1,float fc1,float fca1){ 72 super(name1,fc1); 73 this.FuelecoAir = fca1; 74 } 75 public void setReport(int btime1,int ftime1,int kilo1){ 76 super.setReport(kilo1); 77 this.begintime = btime1; 78 this.finshtime = ftime1; 79 } 80 public float calculateFuelConsumptionOldRegulations() { 81 return super.calculateFuelConsumptionOldRegulations() + (this.finshtime-this.begintime)/this.FuelecoAir; 82 } 83 84 public float calculateFuelConsumptionNewRegulations() { 85 return super.calculateFuelConsumptionNewRegulations()+ (this.finshtime-this.begintime)/this.FuelecoAir; 86 } 87 public float calculateAirFuelConsumption(){ 88 return (this.finshtime-this.begintime)/this.FuelecoAir; 89 } 90 91 } 92 93class DeluxeCar extends AdvancedCar{ 94private int passengers,begintime1,finshtime1; 95private float FuelecoAir1; 96public DeluxeCar(){ 97super(); 98this.passengers=0; 99this.begintime1=0; 100this.finshtime1=0; 101} 102 public DeluxeCar(String name2,float fc2,float fca2){ 103 super(name2,fc2,fca2); 104 this.FuelecoAir1 = fca2; 105 } 106 public void setReport(int btime2,int ftime2,int kilo2,int ptime){ 107 super.setReport(btime2,ftime2,kilo2); 108 this.passengers= ptime; 109 this.begintime1 = btime2; 110 this.finshtime1 = finshtime1; 111 } 112 public float calculateFuelConsumptionOldRegulations() { 113 return super.calculateFuelConsumptionOldRegulations(); 114 } 115 116 public float calculateFuelConsumptionNewRegulations() { 117 return super.calculateFuelConsumptionNewRegulations()+(this.passengers/this.FuelecoAir1)- super.calculateAirFuelConsumption(); 118 } 119} 120 121

わからないこと

setReport()をどのように扱うか

補足情報(FW/ツールのバージョンなど)

jdk-14.0.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/05/31 01:41

メソッドなので格納できません。
Zuishin

2020/05/31 02:21

> setReport()をどのように扱うか 好きなように。
BluOxy

2020/05/31 03:25

> それぞれのgetFuelConsumptionOldRegulations()とgetFuelConsumptionNewRegulations()を出力したい まずは試してみましょう。 > setReport()をどのように扱うか wa3 さんの目的次第です。
guest

回答1

0

業務要件が全く開示されていないので推測の範囲で答えます。

SimpleCarsetReport()

java

1 public void setReport(int kilo) { 2 this.distance = kilo; 3 }

となっているのでおそらく走行距離(distance)を引数に与えて、報告(設定)するためのものです。

AdvancedCarsetReport() は、

java

1 public void setReport(int btime1, int ftime1, int kilo1) { 2 super.setReport(kilo1); 3 this.begintime = btime1; 4 this.finshtime = ftime1; 5 }

となっているので開始時刻、終了時刻、走行距離を引数に与えて、報告(設定)するためのものでしょう。

加えて DeluxeCarsetReport() は、

java

1 public void setReport(int btime2, int ftime2, int kilo2, int ptime) { 2 super.setReport(btime2, ftime2, kilo2); 3 this.passengers = ptime; 4 this.begintime1 = btime2; 5 this.finshtime1 = finshtime1; 6 }

となっているので開始時刻、終了時刻、走行距離に加え、乗員数を引数に与えて、報告(設定)するためのものでしょう。

 cars[] を生成したあと、これらが全く呼ばれていないため、結果としてすべて 0.0 で出力されています。

 cars[] は、SimpleCar、AdvancedCar、DeluxeCar のインスタンスが混じっている上にそれぞれ setReport() の引数の数が異なるため、単純にループで処理することができないので main() の for に入る前に呼び出す必要があるでしょう。

java

1 public static void main(String[] args) { 2 SimpleCar[] cars = { new DeluxeCar("Honda", 14f, 10.5f), new SimpleCar("Nissan", 13.0f), 3 new AdvancedCar("Toyota", 15.5f, 9.5f), new DeluxeCar("Van", 10.5f, 6f) }; 4 5 // ここら辺で cars[0] から cars[3] のそれぞれの setReport() を呼ぶ。(一案) 6 // 実際の値は、与えられた条件に従うこと 7 ((DeluxeCar)cars[0]).setReport(1,10,100, 2); 8 cars[1].setReport(100); 9 ((AdvancedCar)cars[2]).setReport(1, 10, 100); 10 ((DeluxeCar)cars[3]).setReport(1,10,100,3); 11 12 13 for (int i = 0; i < cars.length; i++) { 14 System.out.println("OldRegulations:" + cars[i].calculateFuelConsumptionOldRegulations() + " NewRegulations:" 15 + cars[i].calculateFuelConsumptionNewRegulations() + "\n"); 16 } 17 }

投稿2020/06/06 14:08

Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問