• 締切済み

クラスを使用した問題

問題 Mainクラス 1.実行時に引数を付けて実行する。 2.判定クラスのオブジェクトを生成する。 3.args(実行時の引数)から値を取得する。 4.argsから取得した値を引数として、判定クラスのnameメソッドを実行する。 5.argsから取得した値を引数として、判定クラスのageメソッドを実行する。 6.argsから取得した値を引数として、判定クラスのbirthメソッドを実行する。 判定クラス nameメソッド(引数=String) 1.String型の引数を一つ受け取る 2.受け取った引数の値が「name」だった場合、名前を表示する。 戻り値なし。 ageメソッド(引数=String) 1.String型の引数を一つ受け取る 2.受け取った引数の値が「age」だった場合、名前を表示する。 戻り値なし。 birthdayメソッド(引数=String) 1.String型の引数を一つ受け取る 2.受け取った引数の値が「birthday」だった場合、名前を表示する。 戻り値なし。 実行結果 java NameAgeBirth name 岩田 java NameAgeBirth age 27歳 java NameAgeBirth birthday 5月16日 参考例が欲しいです。良かったら参考例をください。よろしくお願いします。

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

みんなの回答

回答No.3

暇つぶしに書いてあるとおり作ってみた。 class NameAgeBirth { public NameAgeBirth() { super(); } public void age(String arg) { if ("age".equals(arg)) { System.out.println("namae"); } } public void birthday(String arg) { if ("birthday".equals(arg)) { System.out.println("namae"); } } public void name(String arg) { if ("name".equals(arg)) { System.out.println("namae"); } } public static void main(java.lang.String[] args) { if (args.length > 0) { NameAgeBirth nab = new NameAgeBirth(); String arg = args[0]; nab.name(arg); nab.age(arg); nab.birthday(arg); } } } 楽しいのに何で自分でやらないんだろうね。

saitamaj
質問者

お礼

大変参考になりました。ありがとうございました。

回答No.2

問題の出し方にも問題ある感じですね。 >判定クラス >nameメソッド(引数=String) >1.String型の引数を一つ受け取る >2.受け取った引数の値が「name」だった場合、名前を表示する。 >戻り値なし。 >ageメソッド(引数=String) >1.String型の引数を一つ受け取る >2.受け取った引数の値が「age」だった場合、名前を表示する。 >戻り値なし。 >birthdayメソッド(引数=String) >1.String型の引数を一つ受け取る >2.受け取った引数の値が「birthday」だった場合、名前を表示する。 >戻り値なし。 >実行結果 >java NameAgeBirth name >岩田 >java NameAgeBirth age >27歳 >java NameAgeBirth birthday >5月16日 どのメソッドも最終的に名前を表示になってるのに実行結果の内容はバラバラ。そもそも名前といってもどんな値を出すのかすら定義がない。 私なら出題者に「問題おかしくないですか?」という答えを出しますね。

  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

どこかの問題の丸投げにしか見えないのですが、どこで躓いてますか?

関連するQ&A

  • voidの性質や使い方、showメソッドについて

    1ファイル1クラスの原則に反しますが、敢えて1ファイルに2クラスあるプログラムにおいて、voidの性質や使い方、showメソッド等について教えてほしいです。 ファイル名はStart.javaです。 --------------------------------- package sample; class Cat { String name; int age; void show(String name,int age) { System.out.println("名前は" + name + "です"); System.out.println("年齢は" + age + "歳です"); } } public class Start { public static void main(String[] args) { Cat cat1 = new Cat(); cat1.name = "太郎"; cat1.age = 28; cat1.show(); } } --------------------------------- 「cat1.show();」のところでエラーが出ていますが、Eclipseでそのまま実行してみますと。 ~~~~~~~~~~~~~~~~~~~ Exception in thread "main" java.lang.Error: Unresolved compilation problem: 型 Cat のメソッド show(String, int) は引数 () に適用できません at sample.Start.main(Start.java:16) ~~~~~~~~~~~~~~~~~~~ といったエラーが出てきます。しかし、Catクラスの「void show(String name,int age) 」の箇所を「void show() 」のように、Startクラスと同じく引数の中身を空にしますと。 |||||||| 名前は太郎です 年齢は28歳です |||||||| と、正しい結果が出力されたのです。 最初のプログラムは、Catクラスのshowメソッドには引数があり、Startメソッドのshowメソッドには引数が無い状態でした。 修正したプログラムでは、どちらのクラスのshowメソッドにも引数はありませんでした。 最初のプログラムでも、mainメソッドを実行して、nameとageに値を格納して、showメソッドでCatクラスの方で定義したshowメソッドを呼び出すといった流れで、正しい値は出るはずだと自分は考えたのですが。 なぜエラーになってしまったのか、どうして2つのクラスのshowメソッドの引数が空だとうまく結果が出力されたかにつきまして、お教えいただけないでしょうか。 よろしくお願い致します。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • 計算クラスのメソッドについて

    <問題> Mainクラス mainメソッド 1)実行時に引数を2つ付けて実行する。(数字) 2)計算クラスのオブジェクトを生成。 3)argsの0番目と1番目から値を取得し、int型に変換する。 4)int型に変換した値2つを引数として、計算クラスの足し算メソ   ッドを実行し、戻り値を取得して表示する。 計算クラス 足し算メソッド(引数=int,int) 1)int型の数字を引数として2つ受け取る。 2)二つの引数の値を足し算する。 3)計算した値を戻り値とする。 *********************************************************** 上記の問題についての質問です。 最初mathくらすのメソッドを使うのかと思ったのですが、 足し算を計算するようなメソッドが無かったのでネットで検索 して見つけたcalcAdd()というメソッドを使って記述してみました。 でも「シンボルを見つけられません」のエラーが出てコンパイル 出来ないし、メソッドの使い方も違うような気がするので、 分かる方正しい記述の仕方を教えてください。 package siryou; class Keisan { int cal; int cul; public int tashizan(int a, int u) { cal = a; cul = u; int kekka = (Integer)calcAdd(cal, cul, 0); return kekka; } } class TashiHikiKakeWari { public static void main(String args[]) { Keisan ki = new Keisan(); String str1 = args[0]; String str2 = args[1]; int res1 = Integer.parseInt(str1); int res2 = Integer.parseInt(str2); ki.tashizan(res1, res2); int kekka = ki.tashizan(res1, res2); System.out.println(kekka); } } ************************************************************ calcAdd()メソッドの呼び出し方も間違っている気がするのですが、 そもそもこのメソッドって呼び出せば自動的に計算されるように なっているのですか? それとも足し算を計算する記述は別にしなければならないのでしょうか?

    • ベストアンサー
    • Java
  • インターフェイス実装クラスの表示について

    /* インタフェースPlanetを実装したクラスEarth、Marsがあります。  以下の実行結果になるようにクラスAggregateへshowメソッドを  追加してください。 [実行結果] 地球 太陽系にある惑星の1つで、太陽から3番目に近い。・・・ 火星 太陽系の太陽に近い方から4番目の惑星である。・・・ */ // [Planet.java] // 実装したいPlanetクラス interface Planet {   public String getName();   public String getOutline(); } // Planetを実装したEarthクラス // [Earth.java] class Earth implements Planet {   private final String name="地球";   // getNameメソッド:戻り値String、引数無し   public String getName(){    return name;   }   // getOutlineメソッド:戻り値String、引数無し    public String getOutline(){      return "太陽系にある惑星の1つで、太陽から3番目に近い。・・・";    } } // Planetを実装したMarsクラス // [Mars.java] class Mars implements Planet {   private final String name="火星";   // getNameメソッド:戻り値String、引数無し   public String getName(){     return name;   }   // getOutlineメソッド:戻り値String、引数無し   public String getOutline(){     return "太陽系の太陽に近い方から4番目の惑星である。・・・";   } } // メインクラス // [Main.java] class Main{   public static void main(String[] args){   // Earth&Marsクラスのインスタンス化    Earth earth = new Earth();     Mars mars = new Mars();   // Aggregateクラスのインスタンス化   Aggregate aggregation = new Aggregate();   // showメソッド呼び出し:戻り値無し、引数earth・mars    aggregation.show(earth);    aggregation.show(mars); } } // [Aggregate.java] class Aggregate { // ここにshowメソッドを追加   public void show(Earth planet){     System.out.println();   }   public void show(Mars planet){     System.out.println();   }  } showメソッドに引数としてEarth planet,Mars planetを渡すというところまでは理解しています。後は星の名前と概要を表示するのですが、例えば、 showメソッド内 // ここにshowメソッドを追加 public void show(Earth planet){ String str = earth.getName(); System.out.println(str); } public void show(Mars planet){ String str2 = mars.getOutline(); System.out.println(str2); } } とすると、erathとmarsの部分が「シンボルがありません」のエラーになります。自分の認識としては、EarthクラスとMarsクラスでフィールド変数を宣言しているので使えるのでは?と思っていたのですが、全然違うようです。どなたかどちらかのコード例を表記して頂けないでしょうか?よろしくお願い致します。

    • ベストアンサー
    • Java
  • 戻り値を使う問題について

    <問題> 以下のクラスを作成せよ。 「mainメソッド」 1)Aisatuクラスのオブジェクト作成。 2)Aisatuクラスのohayouメソッドを呼び出し、  戻り値を取得して表示する。 3)Aisatuクラスのkonnitiwaメソッドを呼び出し、  戻り値を取得して表示する。 4)Aisatuクラスのkonbanwaメソッドを呼び出し、  戻り値を取得して表示する。 「Aisatuメソッド」 ohayouメソッド ・「おはようございます」という文字列を戻り値とする。 ・「こんにちは」という文字列を戻り値とする。 ・「こんばんは」という文字列を戻り値とする。 <実行結果> おはようございます こんにちは こんばんは ************************************************************ 上記の質問についてのプログラムなんですが、いまいちクラスとか メソッドとかよく分からなくて、ちゃんと実行できません。 コンパイルは通るのですが、実行しようとすると、 java.lang.NoSuchMethodError のエラーが出てしまいます。 メソッドが見つからないということでしょうか? 間違っているところを教えて下さい。 よろしくお願いします。 class Aisatu { private String oha; private String koni; private String koba; public String aiOhayou(String o) { oha = o; return oha; } public String aiKonnitiwa(String n) { koni = n; return koni; } public String aiKonbanwa(String b) { koba = b; return koba; } } class Greet02 { public static void main(String args[]) { Aisatu as = new Aisatu(); as.aiOhayou("おはようございます"); String ohayou = as.aiOhayou("おはようございます"); System.out.println(ohayou); as.aiKonnitiwa("こんにちは"); String konnitiwa = as.aiKonnitiwa("こんにちは"); System.out.println(konnitiwa); as.aiKonbanwa("こんばんは"); String konbanwa = as.aiKonbanwa("こんばんは"); System.out.println(konbanwa); } }

    • ベストアンサー
    • Java
  • クラスメソッドの問題

    春から情報系の大学に行くためjavaについて勉強しているのですが分からない問題が出てきたので質問します。 問題 1からnまでの奇数の和を求めるプログラムsumple.javaと和を計算するためのクラスメソッドSum及び結果を表示するためのクラスメソッドdisplayを用いて作成する。 Sumの戻り値と因数はともにint型とする。 なおdisplayの戻り値はvoid型、因数はint型が2つとする。 nの入力はコマンドライン引数を利用する 実行例 $ java sumple.java コマンドライン引数がありません! $ java sumple.java 100 1から100までの奇数の和は2500です。 このようになるのですがそのように作ればよいか全然わかりません。 回答お願いします

  • クラスやメソッドが理解できません

    今javaを勉強中なのですが、クラスやメソッドで生きず待ってしまいました。 メソッドの定義は 戻り値の型 メソッド名(引数リスト) {  文;  ・・・ return 式;  } ですが、メソッドから返されえる値を戻り値といますよね?呼び出し元に値を返すってどういうことなのでしょうか? int getNum() { System.out.println("調べました") return num; } たとえば、上記のようなものですが。もしも、このメソッドを呼び出すと、”戻り値”が戻ってくるわけですが、これはgetNumという変数のなかに計算式が入っている?という考え方でいいのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • クラスの拡張について

    Teacher クラスを変更し、newTeacher()の時は、名前「TARO」、年齢「25」、科目「国語」で初期化し、newTeacher(名前、年齢、科目)のときはそれぞれのパラメータでオブジェクトを作るようにしたい。 Person クラスのコンストラクタが使ってもかまわない という問題で //ClassRoom3.java class Person{ String name; int age; Person(String name,int age){ this.name = name; this.age = age; } void print(){ System.out.println("[Name]"+name); System.out.println("[age]"+age); } } class Teacher extends Person{ String subject; void print(){ System.out.println("私は"+name+" といいます。"); System.out.println("年齢は"+age+" 才です。"); System.out.println(subject+" を教えています。"); } } class ClassRoom3{ public static void main(String args[]){ Teacher obj1 = new Teacher(); Teacher obj2 = new Teacher("JIRO",27,"算数"); obj1.print(); System.out.println(); obj2.print(); } } /* 実行例 >java ClassRoom3 私は TARO といいます。 年齢は 25 才です。 国語 を教えています。 私は JIRO といいます。 年齢は 27 才です。 算数 を教えています。 */ という出力結果をだしたいのですが、なんどもやっても失敗してしまい。なかなかできません。 どう直したらよいのですか?

  • javaのソースコードがわかりません

    初心者には難しすぎるのでおしえてください。 クラス名 Advance5 ※main()メソッドがあるクラス Sub5_StaticCheck 指示 Advance5 クラス main()メソッド Sub5_StaticCheck クラスのcallDisp()メソッドを呼び出す ※インスタンスを生成せずに実行 Sub5_StaticCheck クラス callDisp()メソッド 定義 修飾子 : public キーワード : static 戻り値の型 : void 引数 : なし 指示 disp()メソッドを実行する その際、BufferedReader クラスを使用してキーボードから文字列を1 つ入力し、入力した文字列を引数として1つ渡す disp()メソッド 定義 修飾子 : public 戻り値の型 : void 引数 : String 型の値を1つ 指示 引数で受け取った値を表示する

  • 抽象クラスを継承してクラスを作成の作り方が分かりません

    -------------------------------------- Employee -------------------------------------- -name : String #coin:double -------------------------------------- +getName():String +setName(String name):void +getcoin():double +setcoin(double Salary):void -------------------------------------- 抽象クラスを継承してクラスを作成 car1.java car2.java Employee.javaはIEmployeeを継承 IEmployee.javaは、メソッド"String getRoleName()を定義するインターフェース IEmployee.javaも作成 Sample.javaを実行し次の結果を得られるように作成 どなたか分かる方がいましたら教えて下さい。宜しくお願いします。

  • 間違っているところを教えて下さい

    次のプログラムの間違っているところを教えて下さい。 ************************************************************** package siryou; import java.io.*; import java.util.HashMap; class Meibo { private HashMap address; private HashMap age; public Meibo(String s) { address.put("yamada", "沖縄"); address.put("sato", "東京"); address.put("tanaka", "北海道"); address.put("ikeda", "アメリカ"); age.put("yamada", "21歳"); age.put("sato", "30歳"); age.put("tanaka", "55歳"); age.put("ikeda", "12歳"); } public String getAddress(String n) { String name = n; String jyuusyo = (String)address.get(name); return jyuusyo; } public String getAge(String n) { String name = n; String nennrei = (String)age.get(name); return nennrei; } } class MeiboMain { public static void main(String args[])throws IOException { System.out.println("名前を入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); Meibo mi = new Meibo(str); mi.getAddress(str); String jyuusyo = mi.getAddress(str); System.out.println(str + "さんの住所は" + jyuusyo + "です。"); mi.getAge(str); String nennrei = mi.getAge(str); System.out.println(str + "さんの年齢は" + nennrei + "です。"); } } *************************************************************** 恐らくコンストラクタ内の処理が間違っていると思うんですが・・・ 実行すると、「NullPointerException」が出てしまいます。 渡した引数の処理がちゃんと出来ていないのかな?と思った のですが、どういう風に記述してよいのか分からなくて。 また、メソッド内で 取得した値がnullだった場合、「未設定」という文字列を戻り値と する処理を記述したいのですが、どのように書いたら良いので しょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう