• 締切済み

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

まず、 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のシンボルが見つけられません」 といった感じにコンパイルエラーとなってしまいます。 何が原因なのでしょうか?

  • Java
  • 回答数2
  • ありがとう数2

みんなの回答

  • wooyan34
  • ベストアンサー率0% (0/0)
回答No.2

wooyan52です。 何個もメモ帳開いていて上書き保存してコンパイル実行してたんですが、 一度メモ帳全部閉じてまた開いてみると保存されてませんでした。 それからまたソースを書いて保存してコンパイル実行してみたら、なんとか実行できました。 お手数かけて申し訳ありませんでした。 ちなみに、Car.javaファイルの下のほうにある if(dist < fuel) は if(dist > fuel)の間違いで、 上のほうにある x=y=0; は x=y=0.0;の間違いです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

とりあえず, あなたがしたことを「正確に」「全て」書いてください. あと, エラーメッセージを書くときも「といった感じ」とぼかすのではなく, 正確に書いてください. ところで, 「のファイルをcar.javaと名前をつけて保存しました」と書いてあるんだけど, あえて car を小文字にしたのはなぜ?

wooyan_52
質問者

お礼

ミスです。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 個 --------------------------------------------------------------------------------------- と出ました。

wooyan_52
質問者

補足

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

関連するQ&A

  • Eclipseが解りません。

    ファイル名はPerson.javaです。 F11などその他を実行しましたが 以下の問題が検出されました。 javax.xml.ws org.apache.xmlrpc と出ました。 どこが間違っているのでしょうか? アドバイスのほどよろしくお願いいたします。 public class Person { private int age; private double weight; private double height; public Person(int age, double weight, double height) { this.age = age; this.weight = weight; this.height = height; } public void show() { System.out.println("年齢は" + age + "体重は" + weight + "身長は"+ height +"です。" ); } } public class Person { private int age; private double weight; private double height; public Person(int age, double weight, double height) { this.age = age; this.weight = weight; this.height = height; } public void show() { System.out.println("年齢は" + age + "体重は" + weight + "身長は"+ height +"です。" ); } }

    • ベストアンサー
    • Java
  • javaの課題が難しくて解けません。力を貸してください

    本日、プログラムの授業で課題が出されました。 解ける方がいましたら、回答を教えてください。 課題:これまでの演習で作成した Rectangle, Triangle, Circle, Trapezoidクラスを利用するクラス (メインクラス)を修正して, コマンドライン引数から図形の種類、入力値を指定できるようにしてみよ。 ※4つのクラスをpackageで1つにまとめる必要があるようです。 お手数かけますが、宜しくお願いします。 下記が演習で作成した4つのクラスになります。参考にしてください。 (Rectangleクラス) import java.io.*; class Rectangle { private int width; private int height; public Rectangle(int w, int h) { width = w; height = h; } public void setWidth(int w) { width = w; } public void setHeight(int h) { height = h; } public int getWidth() { return width; } public int getHeight() { return height; } public double calcArea() { return width * height; } public void show() { System.out.println("width=" + getWidth() + ", height= " + getHeight()); } } public class kadai1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("width= "); String str1 = br.readLine(); System.out.print("height= "); String str2 = br.readLine(); Rectangle r = new Rectangle(Integer.parseInt(atr1),Integer.parseInt(str2)); r.show(); System.out.println("面積 = " + r.calcArea()); } } (Triangleクラス) public double calcArea() { return width * height / 2.0; } (Circleクラス) public double calcArea() { return Math.PI * radius * radius; } public void show() { System.out.println("radius= " + getRadius()); } (Trapezoidクラス) public double calcArea() { return (upper + lower) * height / 2.0; } public void show() { System.out.println("upper= " + getUpper() + ", lower= " + getLower() + ", height= " + getHeight()); }

  • java eclipse do-while文

    計算問題のプログラムです。No…0を選択したときにwhile文から抜け出したいです。 抜け出せない原因と解決方法(プログラム)を教えていただけるとありがたいです。 package lesson5; import java.util.Random; import java.util.Scanner; public class MentalArithmetic { static Scanner stdIn = new Scanner(System.in); static boolean confirmRetry(){ int cont; do{ System.out.print("もう一度?<Yes・・・1/No・・・0> : "); cont = stdIn.nextInt(); }while (cont != 0 && cont != 1); return cont ==1; } static void mondai1(){ Random rand = new Random(); do{ int p = rand.nextInt(900) + 100; int q = rand.nextInt(900) + 100; int r = rand.nextInt(900) + 100; while(true){ System.out.println(p + "+" + q + "+" + r + " = " ); int k = stdIn.nextInt(); // if(k == p + q + r) // break; System.out.println("違いますよ!!"); } }while (confirmRetry()); } public static void main(String[] args) { System.out.println("暗算力トレーニング!!"); while (true) { mondai1(); } } }

  • privateなフィールドは継承されない?

    たとえば、 class A { private int width; public A(){ this.width=3; } public int getWidth(){ return width; } public void setWidth(int width){ this.width=width; } } -------------------------------- class B extends A { String name; public B(){ this.name="あきら"; } } -------------------------------- class TestAB{ public static void main(String[] args){ B b = new B(); B b2= new B(); System.out.println(b.getWidth()); b2.setWidth(5); System.out.println(b2.getWidth()); System.out.println(b.getWidth()); } } というのがあったとして、ある参考書では「privateなフィールドは継承されない」と書いてありました。 でも、これってwidthに直接アクセスして値を変更できないだけであって、 widthは継承されてるのではないですか? B型のb専用、b2専用のwidthがあるのではないですか? ちょっと頭がこんがらがってきました。。

    • ベストアンサー
    • Java
  • 初心者Javaの件。

    いつも大変お世話になりありがとうございます。 次の2つのコードは関係があるのでしょうか? 2つを合体させないとプログラムがエラーになるのでしょうか? 私は合体させないとプログラムが成立しないと思います。 アドバイスのほど宜しくお願い申し上げます。 コード1 public class Person { private int age; private double weight; private double height; public Person(int age, double weight, double height) { this.age = age; this.weight = weight; this.height = height; } public void show() { System.out.println("年齢は" + age + "体重は" + weight + "身長は"+ height +"です。" ); } } コード2 import java.io.BufferedReader; public class Sample3 { { public static void main(String args[]) throws Exception { person p[]; System.out.println("人数を入力してください。"); BufferedReader br = new BufferedReader(new inputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); p = new Person[num]; for(int i=0; i<num; i++) { } System.out.println("年齢を入力してください"); str = br.readLine(); int age = Integer.parseInt(str); P = new Person[num]; for(int i=0; i<num; i++){ System.out.println("年齢を入力してください"); str = br.readLine(); int age = Intger.parseInt(str); System.out.println("体重を入力してください"); str = br.readLine(); double weight = Double.parseDouble(str); System.out.println("身長を入力してください"); str = br.readLine(); double height = Double.parseDouble(str); p[i] = new person(age, weight, height); } for(int i=0; i<num; i++) { p[i].show(); } } }

    • ベストアンサー
    • Java
  • 継承プログラムについて 

    下記で作成した継承プログラムで、間違ったプログラムの部分を直しても同じエラーが発生します。どうしたら下記のプログラムがうまく動きますか? ちなみに同じエラーが発生するのはsuper()の部分で、シンボルが見つからないとのこと. class Human { private double height, weight; private String name; private static int count = 0; public Human() { height = 0; weight = 0; name = "no name"; } public void inputData(String na, double ht, double wt) { height = ht; weight = wt; name = na; } public void showValue() { count++; System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg"); } public void copyData(Human a) { height = a.height; weight = a.weight; name = a.name; } public double readData(double a) { if(a==0){ return height; }else{ return weight; } } public static int readCount() { return count; } } class Sandai extends Human { private String number; public Sandai(String nu, String na, double ht, double wt) { super(na, ht, wt); number = nu; } public void showData() { System.out.println("学籍番号:"+number+", "); showValue(); } } class Kadai12_3 { public static void main(String args[]) { Sandai student = new Sandai("09H099", "Taro", 165.0, 55.0); student.showData(); } }

    • ベストアンサー
    • Java
  • 継承プログラムについて

    下記で作成した継承プログラムで、間違ったプログラムの部分を直しても同じエラーが発生します。どうしたら下記のプログラムがうまく動きますか? ちなみに同じエラーが発生するのはsuper()の部分で、新保ぷが見つからないとのこと。 class Human { private double height, weight; private String name; private static int count = 0; public Human() { height = 0; weight = 0; name = "no name"; } public void inputData(String na, double ht, double wt) { height = ht; weight = wt; name = na; } public void showValue() { count++; System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg"); } public void copyData(Human a) { height = a.height; weight = a.weight; name = a.name; } public double readData(double a) { if(a==0){ return height; }else{ return weight; } } public static int readCount() { return count; } } class Sandai extends Human { private String number; public Sandai(String nu, String na, double ht, double wt) { super(na, ht, wt); number = nu; } public void showData() { System.out.println("学籍番号:"+number+", "); showValue(); } } class Kadai12_3 { public static void main(String args[]) { Sandai student = new Sandai("09H099", "Taro", 165.0, 55.0); student.showData(); } }

    • ベストアンサー
    • Java
  • 初心者で練習問題をしています

    Javaで練習問題をしています Carというclassを作成して(public, privateを明示) フィールドはStringでmake(型式),colour(色),intでfuel(燃料)です。 コントラクタを作成して、 car1:make(Ferarri),colour(red),intでfuel(100) car2:make(Volvo),colour(blue),intでfuel(200) car3 = car2、 ↓ car2では色をgreenにし、car3では燃料を20使うと car2:make(Volvo),colour(green),intでfuel(180) car3:make(Volvo),colour(green),intでfuel(180) 両方とも180になってしまいますが、 (greenはいっしょになってかまいません) car2の燃料を200のまま減らないようにするには どうしたらいいでしょうか どうぞよろしくお願いします。 Public class Car { . . public void setColour(String newColour) { colour = newColour; } public void useFuel(int amount) { fuel = fuel - amount; } public static void main(String[] args) { Car car2 = new Car(); car2.make = "Volvo"; car2.colour = "blue"; car2.fuel = 200; System.out.println("car2make="+car2.make); System.out.println("car2colour="+car2.colour); car2.toString(car2.colour,car2.make); Car car3 = new Car(); car3 = car2; car2.setColour("green"); System.out.println("car2colour=blue -> green"); System.out.println("car2colour="+car2.colour); System.out.println("car3colour="+car3.colour); car3.useFuel(20); System.out.println("car2fuel="+car2.fuel); System.out.println("car3fuel="+car3.fuel); } . .

    • ベストアンサー
    • Java
  • Javaコンパイルエラー

    Javaにて以下のようなプログラムを作成していますが、 「演算子 ^ は引数の型 double, int で未定義です。」とエラーになりました。 色々な方のご協力もあり、ここまで作れましたが、 これより先が行き詰っています。 教えていただけないでしょうか。 ---------------------------------------------- // 分散を返すメソッド public class Kadai16 { public static void main(String args[]){ //double型の配列の生成 double[]a=new double[10]; argument(a); //配列aの要素[0]から[9]の内容を表示 System.out.println(a[0]); System.out.println(a[1]); System.out.println(a[2]); System.out.println(a[3]); System.out.println(a[4]); System.out.println(a[5]); System.out.println(a[6]); System.out.println(a[7]); System.out.println(a[8]); System.out.println(a[9]); //double total=sum(a)を実行する double total =sum(a); System.out.println("合計は"+total+"です。"); //使って平均を出す double heikin; mean(total); heikin = mean(total); System.out.println("平均は"+heikin+"です。"); //分散を返す double bunsan; bunsan = total-heikin^2/10; System.out.println("分散は"+bunsan+"です。"); } /** * ランダムな数値を入れるメソッド * @param a ランダムな数値を入れる配列 */ private static void argument(double[]a) { //引数の配列aの[0]から[9]までランダムな数値を設定する。 for(int i=0; i<a.length;i++) { a[i]=Math.floor(Math.random()*10); } } //配列を受け取って要素の合計を出すメソッド public static double sum(double[] x) { double t=0; for(int i=0; i<x.length;i++) { t= x[i]+t; } return t; } //配列を受け取って平均を出すメソッド public static double mean(double b) { return b/10; } //分散を返すメソッド public static double bunsan(double c) { double t=0; double bnsan =0; for(int i=0; i<c.length; i++) { t =c[i]+t } } }

  • 得点を表示するクラス

    class Tokuten { private int id; private String name; private int eng; private int math; private int sci; Tokuten(int i,String nm,int e,int m,int k) { id=i;name=nm;eng=e;math=m;sci=k; } void show() { System.out.println("("+id+","+name+","+ eng+","+ math+","+ sci+")"); } } public void push(Tokuten tokuten) { if(sp!=tokutens.length) { tokuten.show(); System.out.println("push"); students[sp++]=student; } else { System.out.println("Stack is full"); } } class Sample { public static void main(String[] args) { Stack ss=new Stack(0); ss.push(new Tokuten(1,"Jiko",72,80,68)); (Tokuten)(ss.pop()).show(); } 下記のような得点の表を表示したいのですがうまくいきません set Dataという得点を受け取って各フィールドに格納するやり方が分からないのでエラーばかり出るのだと思います、どなたかソースなどお教えくださると助かります

    • ベストアンサー
    • Java