• 締切済み

オーバーロードで

オーバーロードでメソッドgetvalueへコマンドライン引数から取得した値を渡したいのですが、どのようにすればいいのでしょうか。エラー:シンボルが見つけられません。 ×としたところでol.getvalue( args[i] );←ここに値をいれたいのですが、できません。なにか方法はありますでしょうか。 class OverLoad{     void getvalue(Boolean value){   System.out.println("Boolean型:" + value);     }     void getvalue(int value){   System.out.println("int型:" + value);     } public class Capsule{     public static void main(String[] args){   OverLoad ol = new OverLoad(); ×   ol.getvalue( args[i] ); ○   ol.getvalue(false); ○     ol.getvalue(80);     } }

  • yorog
  • お礼率35% (28/79)
  • Java
  • 回答数3
  • ありがとう数0

みんなの回答

  • isi0611
  • ベストアンサー率34% (46/134)
回答No.3

こんばんは!(^o^)丿 まず ol.getvalue(false); で void getvalue(Boolean value) だとエラーになりません? 型はbooleanのプリミティブ型が正しいと思いますよ。 public static void main(String[] args)では 引数がString型のメソッドが用意されてないため エラーとなってます。 void getvalue(int value)にオーバーロードで 設定したいならば ol.getvalue( Integer.parseInt(args[0]) ); ってな感じでintで渡してあげれば大丈夫ですよ(^^♪

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

void getvalue(String value){ System.out.println("String型:" + value); } を作ったらどうでしょうか

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ×の場合は iという変数が宣言されていないのと、iを宣言しても 引数がString型の配列になってるのでエラーになります。 (argsの型) OverLoadクラスに void getvalue ( String[] values ) {} を用意するか、args[0]をint型に変えてあげればエラーはなくなるはずです。

関連するQ&A

  • 出力結果が得られる理由が分かりません

    一つ目のプログラムソース: public class Array{ public static void main(String[] args){ int[] a={1,2,3,4}; int[] b={5,6,7,8}; System.out.print(a[2]); System.out.print(b[2]); b=a; System.out.print(a[2]); System.out.print(b[2]); b[2]=0; System.out.print(a[2]); System.out.print(b[2]); } } 出力結果:  373300 二つ目のプログラムソース: class Box{ private int value; public Box(){value=0;} public Box(int v){setValue(v);} public void setValue(int v){value=v;} public int getValue(){return value;} public Box copy(){ Box b=new Box(); b.setValue(getValue()); return b; } } public class BoxTest{ public static void main(String[] args){ Box x=new Box(1); Box y=new Box(2); Box z=new Box(3); x=z.copy(); y=z; System.out.print(x.getValue()); System.out.print(y.getValue()); System.out.println(z.getValue()); System.out.println(x==y); System.out.println(y==z); System.out.println(z==x); } } 出力結果:  333 false true false この二つのプログラムがどうしてこのような出力結果になるのかが分かりません。 良かったら教えてください。

    • ベストアンサー
    • Java
  • Javaで単方向リスト作成に行き詰まり

    Javaで単方向リストを作成しようとしているのですが、append()で1件目のvalueやnextの値をアクセスするにはどうしたらいいか分かりません。ちなみにmain関数は変更しなくていいようです。 class Chain{ public static void main(String args[]){ //1件目のノードの作成 if(args.length == 0){ System.out.println("パラメータを指定してください"); return; } Node start = new Node(Integer.parseInt(args[0])); //2件目のノード作成 for(int i = 1; i < args.length; i++){ start.append(Integer.parseInt(args[i])); } } } class Node{ //メンバ変数(インスタンス変数) private int value; private Node next; //コンストラクタ public Node(int value, Node next){ this.value = value; this.next = next; } public Node(int value){ this.value = value; } public Node(){ this.value = 0; this.next = null; } //アクセスメソッド(setter, getter) public int getValue(){ return value; } public void setValue(int value){ this.value = value; } public Node getNext(){ return next; } public void setNext(Node n){ this.next = n; } //通常のメソッド //追加する public void append(int v){ Node chain = new Node(); chain.value=chain.getValue(); System.out.println(chain.value); } }

    • ベストアンサー
    • Java
  • for文の実行結果について

    public class Trace2 { public static void main (String[] args) { int i; int num; num = 1; for (i = 0; i < 10; i++) { num += num; } System.out.println("iの値は" + i); System.out.println("numの値は" + num); } } 実行結果は iの値は10 numの値は1024になります。 何故こうなるのですか?

    • ベストアンサー
    • Java
  • JAVAのコンパイルについて教えてください。

    public class exam05d { public static void main(String[] args) { int value=args[0]; if(value==0) { System.out.println("valueの値は0"); } else { System.out.println("valueの値は0以外"); } } } 上記のプログラムをコンパイルすると exam05d.java:3: 互換性のない型 検出値:java.lang.String 期待値:int int value=args[0]; というエラーが出てしまいます。 これを正常に動作させるにはどう改良すれば良いか教えて頂けないでしょうか。 また変更を行わなければならない理由も教えていただけると有難いです。 プログラミングを始めたばかりで行き詰っています。 回答お待ちしております。

  • intではなくStringで・・・

    こんなソースがあります。。 public class Check { public static void main(String[] args) { int i = Integer.parseInt(args[0]); if (i == 123) { System.out.println("あたり!"); } else if (i < 123) { System.out.println("はずれ!"); } else { System.out.println("おおはずれ!"); } } } これを、int型の文字を入力して判定させるのではなく、String型の文字で判定させたいのですが、 int i = Integer.parseInt(args[0]);をどう変えればいけるでしょうか? よろしくお願いします!

    • ベストアンサー
    • Java
  • java iを1づつ増やすプログラムと2づつ増やすプログラム

    次のようにすればiを1づつ増やして表示されます。 class Calc{   int i=1;   int add(){     return i++;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 1 i = 2 i = 3 しかし次のように2づつ増やそうとすると、 class Calc{   int i=1;   int add(){     return i+2;   } } class Count{   public static void main(String[] args){     Calc calc = new Calc();     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());     System.out.println("i = " + calc.add());   } } 実行結果 i = 3 i = 3 i = 3 このようになってしまいます。どこがおかしいのでしょうか?

    • ベストアンサー
    • Java
  • プログラムの平均値の出し方。

    プログラムの平均値の出し方。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } } このプログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。

  • javaプログラミングの質問です。

    プログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } }

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

    java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??

    • ベストアンサー
    • Java
  • ファイルへの出力

    例えば、以下のようなプログラムがあります。 public class rei{ public static void main(String args[]){ for(int i=0;i<100;i++){ System.out.println(i); } } } ここで、iの値をエクセルファイルに出力することはできるのでしょうか?できれば具体的に教えてください。よろしくお願いします。

専門家に質問してみよう