少し長いですが、以下にコードを書きました。これでコンパイルすると、13個ほどエラーが出て、何がなんだかわかりません。何が間違っているのでしょうか?よろしくお願いします。ちなみに本を見ながらの独学です。
//のりものインターフェイス
interface iVehicle
{
abstract void show();
}
//車くらす
class Car implements iVehicle
{
private int num;
private double gas;
public Car(int n, double g))
{
num = n;
gas = g;
System.out.println("ナンバー" + num +"ガソリン量" + gas +"の車を作成しました");
}
public void show()
{
System.out.println("車のナンバーは" + num +"です");
System.out.println("ガソリン量は" + gas +"です");
}
}
//飛行機クラス
class Plane extends Vehicle
{
private int flight;
public Plane(int f)
{
flight = f;
System.out.println("便" + flight +"の飛行機を作成しました");
}
public void show()
{
System.out.println("飛行機の便は" + flight +"です");
}
}
class sample8
{
public static void main(String args[])
{
iVehicle ivc[];
ivc = new iVehicle[2];
ivc[0] = new Car(1234, 20.5);
ivc[1] = new Plane(232);
for(int i=0; i<ivc.length; i++){
if(vc[i] instanceof Car)
ivc[i].show();
}
}
}
No.2ベストアンサー
- 回答日時:
「コンパイルができない」という話ですよね。
また、タイプミスのレベルだと思うんですが、とりあえず、全部指摘しておきます。
(1) for(int i=0; i<vc.length; i++){
(2) if(vc[i] instanceof Car)
(3) System.out.println((i+1)+"番目のオブジェクトはCarクラスです");
(4) else
(5) Sytem.out.println((i+1)+"番目のオブジェクトはCarクラスではありません");
(6) }
(7) }
(1) vc.length → ivc.length
(2) vc[i] → ivc[i]
(5) Sytem → System
(6) 余分な }
といったところです。
ありがとうございした。しっかりと
指摘してもらえたのでなんとか直せました。
タイプミスって本人見つけにくいんですよね、
でもあまりにも自分は多すぎるので気をつけます。
No.1
- 回答日時:
ほとんどがタイプミスですね。
気を落ち着けてコンパイルエラーのメッセージを見ましょう。//のりものインターフェース の行を第1行として、
% diff -w a.java.orig a.java
12c12
< public Car(int n, double g))
---
> public Car(int n, double g)
かっこが一つ多いです。
25c25
< class Plane extends Vehicle
---
> class Plane implements iVehicle
iVehicle のタイプミス、と、iVehicle はインターフェースなので、
extends ではなく、implements ですね。
51c51
< if(vc[i] instanceof Car)
---
> if(ivc[i] instanceof Car)
変数のタイプミス。
動作させてみると、
% java sample8
ナンバー1234ガソリン量20.5の車を作成しました
便232の飛行機を作成しました
車のナンバーは1234です
ガソリン量は20.5です
とでます。
この回答への補足
ありがとうございました。タイプミスとは・・恥ずかしい限りです。
ところで、前回のは無事実行出来たのですが、類似コードでinstanceof演算子を以下のように使ったコードをコンパイルすると、シンボル処理できません。
シンボル:クラス・out
位置 :Systemのパッケージ
System.out.prinntln(***~else以下の分のところです と出ます。これはどういうことなのでしょうか?
教えてください。
for(int i=0; i<vc.length; i++){
if(vc[i] instanceof Car)
System.out.println((i+1)+"番目のオブジェクトはCarクラスです");
else
Sytem.out.println((i+1)+"番目のオブジェクトはCarクラスではありません");
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java final 1 2022/06/10 22:49
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラスを使った電卓のプログラム
-
javaのプログラミングで作るRPG...
-
JSP/Servletのパラメータの受け...
-
プログラミングの問題です。大...
-
Javaがうまく動作しない理由
-
TCPプログラミング
-
ArrayList でスタックを
-
Java プログラム public class ...
-
変数を動的に利用するには?
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Junitテストでvoid戻り値メッソ...
-
シャットダウンフックが呼ばれない
-
EXCEL VBA で、0から?1から?
-
テキストボックスに入力された...
-
べき乗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
javaで特定の文字列から特定の...
-
Socketの接続のタイムアウトを...
-
Java プログラム public class ...
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
コマンドライン引数の*(アフ...
-
【初心者です】javaで平均値を...
-
Javaで日本語の出力が文字化けする
-
(大至急)JavaでATMもどきを作成
-
コンストラクタの引数の中のnew?
-
Java 最大公約数 gcd
-
C# DatagridviewにExcelシート...
-
randomで
-
GetterとSetterをやったのに。
おすすめ情報