こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

実行するにはどうすれば良いのでしょうか?

まず、

class Car{
private String name;
private int width;
private int height;
private int length;
private double x;
private double y;
private double fuel;

Car(String name,int width,int height,int length,double fuel){
this.name=name; this.width=width; this.height=height; this.length=length; this.fuel=fuel;
x=y=0;
}

double getX() {return x;}
double getY() {return y;}
double getFuel() {return fuel;}

void putSpec(){
System.out.println("名前:"+name);
System.out.println("車幅:"+width+"mm");
System.out.println("車高:"+height+"mm");
System.out.println("車長:"+length+"mm");
}

boolean move(double dx, double dy){
double dist = Math.sqrt(dx*dx+dy*dy);

if(dist < fuel)
return false;
else {
fuel -= dist;
x += dx;
y +=dy;
return true;
}
}
}

のファイルをcar.javaと名前をつけて保存しました。
次に


import java.util.Scanner;

class CarTester2{

public static void main(String[] args){
Scanner stdIn = new Scanner(System.in);

System.out.println("車のデータを入力せよ。");
System.out.println("名前は:"); String name = stdIn.next();
System.out.println("車幅は:"); int width = stdIn.nextInt();
System.out.println("高さは:"); int height =stdIn.nextInt();
System.out.println("長さは:"); int length =stdIn.nextInt();
System.out.println("ガソリン量は:"); double fuel= stdIn.nextDouble();

Car myCar = new Car(name,width,height,length,fuel);

while(true){
System.out.println("現在地("+myCar.getX()+","+myCar.getY()+")・残り燃料"+myCar.getFuel());
System.out.print("移動しますか[0…No/1…Yes]:");
if(stdIn.nextInt()==0) break;

System.out.print("X方向の移動距離:");
double dx = stdIn.nextDouble();
System.out.print("Y方向の移動距離:");
double dy = stdIn.nextDouble();

if(!myCar.move(dx,dy))
System.out.println("燃料が足りません!");
}
}
}

のファイルをCarTester2.javaという名前で保存しました。
この2つのファイルは同一フォルダに入っています。
それで、
javac CarTester2.javaという風にコンパイルしても
「エラー4 
変数myCarのシンボルが見つけられません」
といった感じにコンパイルエラーとなってしまいます。

何が原因なのでしょうか?

投稿日時 - 2011-05-30 01:52:25

QNo.6773511

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

wooyan52です。

何個もメモ帳開いていて上書き保存してコンパイル実行してたんですが、
一度メモ帳全部閉じてまた開いてみると保存されてませんでした。

それからまたソースを書いて保存してコンパイル実行してみたら、なんとか実行できました。

お手数かけて申し訳ありませんでした。


ちなみに、Car.javaファイルの下のほうにある
if(dist < fuel) は if(dist > fuel)の間違いで、
上のほうにある
x=y=0; は x=y=0.0;の間違いです。

投稿日時 - 2011-05-30 03:33:58

ANo.1

とりあえず, あなたがしたことを「正確に」「全て」書いてください.
あと, エラーメッセージを書くときも「といった感じ」とぼかすのではなく, 正確に書いてください.

ところで, 「のファイルをcar.javaと名前をつけて保存しました」と書いてあるんだけど, あえて car を小文字にしたのはなぜ?

投稿日時 - 2011-05-30 02:13:23

補足

すみません、2行目はMyjava→ My Javaの間違いです。

投稿日時 - 2011-05-30 02:33:46

お礼

ミスです。Car.javaで保存しました。
それを私のMyjavaファイルの中にcar1ファイルを作り、そこにCar.javaとCarTester2.javaの2つのファイルを入れました。
そしてカレントディレクトリがMyjavaになっているコマンドプロンプトで
cd car1としてcar1フォルダに移動して、
それからjavac CarTester2.javaでコンパイルを実行すると、
-------------------------------------------------------------------------------------
C:\My Java\car1>javac CarTester2.java
CarTester2.java:18: シンボルを見つけられません。
シンボル: 変数 myCar
場所 : CarTester2 の クラス
System.out.println("現在地("+myCar.getX()+","+myCar.getY()+")・残り燃料"+m
yCar.getFuel());
^
CarTester2.java:18: シンボルを見つけられません。
シンボル: 変数 myCar
場所 : CarTester2 の クラス
System.out.println("現在地("+myCar.getX()+","+myCar.getY()+")・残り燃料"+m
yCar.getFuel());

CarTester2.java:18: シンボルを見つけられません。
シンボル: 変数 myCar
場所 : CarTester2 の クラス
System.out.println("現在地("+myCar.getX()+","+myCar.getY()+")・残り燃料"+m
yCar.getFuel());

CarTester2.java:27: シンボルを見つけられません。
シンボル: 変数 myCar
場所 : CarTester2 の クラス
if(!myCar.move(dx,dy))
^
エラー 4 個
---------------------------------------------------------------------------------------

と出ました。

投稿日時 - 2011-05-30 02:31:33