問題:Javaプログラムで設定した文字が表示されない
- JDK1.5.0_11を使って、参考書の通りにサクラエディタにフィールドのみのHumanクラスとUseHumanクラスを作成しました。
- しかし、コンパイルして実行すると、taro.nameと表示されてしまい、設定したはずの「太郎」という文字が出てきません。
- 使用しているパソコンのOSがVistaなのが原因なのか、設定やダウンロードが間違っているのか、どちらが原因なのでしょうか?
- ベストアンサー
jdk1.5.0_11を使って
参考書の通りにサクラエディタにフィールドのみのHumanクラス public class Human{ String name; } を作り、 もう一つ、 public class UseHuman{ public static void main(String args[ ]){ Human.taro = new Human(); taro.name = "太郎"; System.out.println("taro.name);} } として、コンパイルして実行すると、taro.nameと出てしまい、設定したはずの"太郎"という文字が出てきません... XPを使ってコンパイル実行するとちゃんと太郎と出てくるのですが、今使っているパソコンがVistaなのが原因なのでしょうか? それとも、設定が間違っていたり、ダウンロードしなければならないものをしていないとかでしょうか?
- lijulia
- お礼率100% (1/1)
- Java
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>System.out.println("taro.name); ここが System.out.println("taro.name"); ってなっていませんか? もしなっていたら 「taro.name」という【文字列】を表示することになっていますよ。 たんなる質問へのコピペミスだったらごめんなさい。
関連するQ&A
- オブジェクトのフィールドのコピーについて
下記で作成したプログラムで、Humanクラスの別のオブジェクトの各フィールドの内容を自身のオブジェクトの各フィールドにコピーするpublicメソッドのcopyDataで、「Humanクラスの別のオブジェクトの各フィールドの内容を自身のオブジェクトの各フィールドにコピーする」するプログラムが分かりません。むしろ、知らなくて、もしよければどのようなプログラムになるのか教えてください。 class Human { private double height, weight; private String name; public Human() { height = 0; weight = 0; name = "noname"; } public void inputData(String na, double ht, double wt) { name = na; height = ht; weight = wt; } public void showValue() { System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg"); } public void copyData(Human a) { } } class KNO1 { public static void main(String args[]) { Human member1,member2,member3; System.out.println("member1:"); member1 = new Human(); member1.inputData("Taro",165.0,55.0); menber1.showValue(); System.out.println("member2:"); menber2 = new Human(); member2 = member1; member2.showValue(); System.out.println("member3:"); member3 = new Human(); member3.copyData(menber1); member3.showValue(); member1.inputData("Hana",175.0,75.0); System.out.println("member1:"); member1.showValue(); System.out.println("member2:"); member2.showValue(); System.out.println("member3:"); member3.showValue(); } }
- ベストアンサー
- Java
- オーバーライド
こんにちは。 javaの勉強をしているのですが コンパイルエラーが発生しました。 オーバーライドのプログラムに関する質問です。 まずはプログラムなんですが class Human{ protected String name; protected int height; protected double weight; public Human(){ name = ""; height = 0; weight = 0.0; } public void setName(String n){ name = n; } public void setHeight(int h){ height = h; } public void setWeight(double w){ weight = w; } public void show(){ System.out.println(name + "の身長は" + height + "cm。体重は" + weight + "kgです。"); } } class Teacher extends Human{ private String cource; public void setCource(String c){ cource = c; } public void show(){ System.out.println("担当科目は" + course + "です。"); } } class Ex73{ public static void main(String args[]){ Student human1 = new Student(); human1.setName("一郎"); human1.setHeight(164); human1.setWeight(62.5); human1.setCourse("java"); human1.show(); } } /* Ex73.java:35: シンボルを解決できません。 シンボル: 変数 course 場所 : Teacher の クラス System.out.println("担当科目は" + course + "です。"); ^ Ex73.java:47: シンボルを解決できません。 シンボル: メソッド setCourse (java.lang.String) 場所 : Student の クラス human1.setCourse("java"); */ このプログラムは TeacherクラスでHumanクラスのshow()メソッドをオーバーライドすると言うものです。 どなたかよろしくお願いします。
- ベストアンサー
- Java
- java 実行できない
javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。
- 締切済み
- Java
- コマンドプロンプトを使用して。
よろしくお願いいたします。ネット上にあったサンプルコードをコンパイルし、実行したところ 「Exception in thread "main"java.lang.NoSuchMethodError: main」というメッセージが表示されたのですがどういうことなのでしょうか? コードは以下の通りです。わかる方いましたらよろしくお願いいたします。 public class Sample { public static void main(String[] args1,String[] args2) { MyObject object = new MyObject(); object.setName("mikel"); String s = object.getName(); System.out.println(s); } } class MyObject { String name; public void setName(String str) { name = str; } public String getName() { return name; } }
- ベストアンサー
- Java
- メインメソッドの記述について
メインメソッドを記述する際に、 public static void main(String[] args){ ~~~~~~~~~~~~~ } と書くと思いますが、なぜpublicを付けなければならないのでしょうか? 簡単に考えるために、1つのクラスのみで実行してみたのですがやはりpublicをつけないとエラーになってしまします。 1つのクラスしかないので、どこからも参照されないからpublicでなくても良いと思ったのですが・・・ ちなみに以下の様なとても簡単なもので考えました。 class E_1{ static void main(String[] args){ System.out.println("実験です"); } }
- 締切済み
- Java
- identifierについて教えて下さい
大学の課題をやっていたところ、わからないところが出てきてしまったので教えていただけないでしょうか? エラーが一箇所出てきてしまい、それが <identifier>がありません。 int setDate2(int d,e){ ^ となっています。 初歩的な質問なのですが、調べても分からないので宜しければお願い致します。 以下ソース class Hito{ //フィールド String name; int age; //メソッド String setDate(String a){ name = a; } int setDate(int b){ age = b; } void talk(){ System.out.println(name); System.out.println(age); } } class Gakusei extends Hito{ //フィールド String daigaku; int gakunen; int bangou; //メソッド String setDate2(String c){ daigaku = c; } int setDate2(int d,e){ gakunen = d; gakuseki = e; } void talk(){ System.out.println(daigaku); System.out.println(gakunen); System.out.println(bangou); } } class kadai2{ public static void main(String[] args){ Hito taro = new Hito(); taro.setData("太郎",18); taro.talk(); Gakusei jiro = new Gakusei(); jiro.setData("次郎",20); jiro.setData2("○○○○大学",2,2100000); jiro.talk(); } }
- ベストアンサー
- Java
- Javaについて教えてください!
OyaクラスのメインメソッドからKoクラス内のメソッドを呼び出して文字列の出力を行いたいのですが、今のままではエラーが出てコンパイル出来ません。どこが間違っているか教えてください!ちなみにエクリプスでの実行には問題はありません。 public class Ko{ public static void ko(){ String str = "KO"; System.out.println(str); }} public class Oya{ public static void main(String[] args){ Ko.ko(); }}
- ベストアンサー
- Java
- 今日からjavaの勉強をはじめたものです
以下のプログラムを作成したところ、コンパイルは通るのですが、実行すると、Exception in thread "main" java.lang.NoClassDefFoundError: testとでます。こんな簡単なプログラムも実行できないなんて。。だれかわかる人いませんか? class HelloJava { public static void main(String[] args) { System.out.println("Javadasu"); } }
- ベストアンサー
- 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
お礼
恥ずかしながら、ご指摘の通りでした... 今、確認してみたところ、("taro.name");になっていました... 初歩的な質問に親切に応えていただき、ありがとうございましたm(_ _)m