• ベストアンサー

値の渡し方

こんにちわ。 Javaの勉強をしています。 キーボードから入力して、読み込むクラスで読み込んだ値を処理クラスに渡して演算させたくプログラムを作っています。 下にあるのがそうなのですが、値の渡し方がよくわかりません。 よろしければ、アドバイスをください。 //値の入力クラス import java.io.*; public class Main{ public static void main(String args[])throws IOException{ BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(input.readLine()); int b = Integer.parseInt(input.readLine()); } } ---------------------------------------------------------------- //処理クラス public class Enzan{ public static int Wa(int x, int y){ int wa = x + y; return wa; }      public static int Wa(int x, int y){ int sa = x - y; return sa; } }

質問者が選んだベストアンサー

  • ベストアンサー
  • nishito24
  • ベストアンサー率90% (10/11)
回答No.1

処理クラスの2つのメソッド名が同じですが、 public static int Wa(int x, int y) public static int Wa(int x, int y) <-- Sa(int x, int y) ですよね? Mainからの呼び出し int ans; ans = Enzan.Wa(x,y); ans = Enzan.Sa(x,y);

syamusuke
質問者

お礼

回答ありがとうございます。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • reiman
  • ベストアンサー率62% (102/163)
回答No.2

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public final class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(input.readLine()); int b = Integer.parseInt(input.readLine()); int x=Enzan.Wa(a, b); int y=Enzan.Sa(a, b); System.out.println("wa:"+x+",sa:"+y); } } //////////////////////////////////////////// public class Enzan { public static int Wa(int x, int y) { int wa = x + y; return wa; } public static int Sa(int x, int y) { int sa = x - y; return sa; } }

syamusuke
質問者

お礼

回答ありがとうございます。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 理解できません

    まだ、初めて間もないのですが public class DivisionProcess{ (1)public int dead(int x, int y){ (2)int answer = x/y; (3)return answer; } } public class DivisionTest{ public static void main(String args[]){ (4)int x; (5)int y; (6)int answer; try{ x = Integer.parseInt(args[0]); y = Integer.parseInt(args[1]); DivisionProcess dp = newDivisionProcess(); answer = dp.dead(x,y); } catch(NumberFormatException ex) { System.out.println("数値ではありません"); (7)return; のプログラムの中で、(1)(2)(3)(4)(5)(6)(7)のそれぞれの関係が理解できません。 みなさん助けてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • プログラミングお願いします(JAVA)

    クラスCalcに、次の5つのメソッドを作成しなさい。メインメソッドでオブジェクトを生成し、メソッドを呼び出して、実行しなさい。 二つの整数を引数にもち、その和を戻り値とする wa (メソッド名はwaであることに注意!以下同様。) 二つの整数を引数にもち、その差を戻り値とする sa 二つの整数を引数にもち、その積を戻り値とする kake 二つの整数を引数にもち、その大きい方を戻り値とする max 二つの整数を引数にもち、その小さい方を戻り値とする min した自分が実行したプログラムです。ここまでしかわからないので簡単にお願いします class Calc { int wa; int sa; int kake; int max; int min; int num; int num1; int getWa() { System.out.println("和を調べました"); return num+num1; } int getSa() { System.out.println("差を調べました"); return sa; } int getKake() { System.out.println("積を調べました"); return kake; } int geMax() { System.out.println("大きいほうを調べました"); return max; } int getMin() { System.out.println("小さいほうを調べました"); return min; } void setwasakakemaxmin(int w,int s ,int k,int ma,int mi) { wa=w; sa=s; kake =k; max=ma; min=mi; System.out.println("和を"+wa+"差を"+sa+"積を"+kake+"大きいほうを"+max+"小さいほうを"+min+"にしました"); } } class Sample3 { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Calc car1=new Calc(); String str=br.readLine(); int num = Integer.parseInt(str); String str1=br.readLine(); int num1 = Integer.parseInt(str1); int wa=num+num1; int wa =car1.getWa(); Calc car1 =new Calc(); car1.setWaSaKakeMaxMin(1,2); int wa =car1.getWa(); int sa =car1.getSa(); int kake=car1.getKake(); int max =car1.getMax(); int min=car1.getMin(); System.out.println("Birthdayを調べたところ"); System.out.println("和は"+wa+"差"+sa+"積は"+kake+"大きいほうは"+max+"小さいほうは"+min+"でした"); } }

  • 例外処理throws

    例外処理ではthrowsかtry~catchを使いますよね。 で、ほとんどの場合はtry~catchを使うようで、ほとんどthrowsを使った例しかなく(まあ、throwsでの例外処理はプログラムが停止してしまうので推奨できないでしょうが)よくわから中区なってしまったので教えてほしいです class Input{ int set(String Toi)throws IOException{ System.out.println(Toi); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int a = Integer.parseInt(str); return a; } } のようにInputクラスを用いて外部からこれを使うために Input input = new Input(); x1 = input.set("x座標を入力"); とすると、「キャッチかスロー宣言をしろ」と怒られてしまいました。(コンパイルエラー) この場合どうすればいいでしょうか?

    • ベストアンサー
    • Java
  • コンパイルはできるのに・・・・

    import java.io.*; public class ex32 { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int x = (new Integer(in.readLine())).intValue(); int y = (new Integer(in.readLine())).intValue(); while(x != y) { System.out.print("int x> "); System.out.print("int y> "); if(x > y) { x = x - y; } else{ y = y - x; } } System.out.println("GCM = " + x); } } このソースで、コンパイルとdouble x >の出力まではできるのですが、 そこで数字を入力してエンターを押すと、そこから進みません。 どう直したらいいでしょうか。

    • ベストアンサー
    • Java
  • java初心者です。どうかよろしくお願いします。

    最初に最大公約数を求めるクラスを定義して、それを継承して最小公倍数を求めるプログラムを作ったのですがコンパイルはできても実行するとうまく作動しません。 理想の実行例は以下の通りです。 1st ? 12 2nd ? 8 Cookie=4 Late=24 ですが、1st? と 2nd? に数値を入力後に「Exception in thread "main" java.lang.ArithmeticException: / by zero」というエラーがどうしても出てきます。 なにが原因なのかさっぱり分からなくなり完全に詰まってしまいました・・・。 どなたか解る方がいらっしゃいましたら、どうか助けて下さい。 書いたソースコードは以下の通りです。 import java.io.*; class Cookie{ private int aa, bb; Cookie(int x, int y){ aa = x; bb = y; } public int cookie(){ int a = aa, b = bb; int r; while(b > 0){ r = a%b; a = b; b = r; } return a; } } class ChocoLate extends Cookie{ private int i,r; ChocoLate(int x, int y){ super(x,y); i = (x * y) /r; } public int late(){ return i; } } class sample{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("1st?"); String str1 = br.readLine(); System.out.print("2nd?"); String str2 = br.readLine(); int a = Integer.parseInt(str1); int b = Integer.parseInt(str2); ChocoLate lg = new ChocoLate(a,b); System.out.println("Cookie=" + lg.cookie()); System.out.println("Late=" + lg.late()); } }

    • ベストアンサー
    • Java
  • クラスのフィールドの値を配列に代入する方法

    フィールドの値を代入したいのですが、 java.lang.ArrayIndexOutOfBoundsException というエラーが出てしまい、どうすればいいのかわかりません。 どのように対処すればいいのでしょうか? class Car { String carname; int height; int width; int length; } class public static void main(String[] args) throw IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ int c_h[] = new int[5]; c_h[i] = car[i].height; } } よろしくお願いします。

    • ベストアンサー
    • Java
  • このプログラムのどこがいけないかの指摘をお願いします!

    import java.io.*; public class ex32h_1{ public static void main(String args[]) throws Exception{ BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); System.out.print("x="); int x=(new Integer(in.readLine())).intValue(); System.out.print("y="); int y=(new Integer(in.readLine())).intValue(); System.out.print("z="); int z=(new Integer(in.readLine())).intValue(); boolean result= (x*y*z==0) && ((x^2+y^2)!=0) && ((y^2+z^2)!=0) && ((x^2+z^2)!=0); System.out.println("0は一つ?;"+result); } } x,y,zに0が一つだけあるかどうかを調べるというものです。x=0,y=1,z=1(0,1,1)の組み合わせのときはなぜかfalseになってしまいます。他のとき(0,1,2)のときなどはきちんとtrueになります。 どこがいけないかわかるかたご指摘の程をお願いします。 (幅の都合上左よりですが実際のプログラムをきちんとスペースが入っています。)

    • ベストアンサー
    • Java
  • Java int sum = 0は必要ですか?

    やさしいJavaという本を買ったのですが、良くわからない箇所がありました。 --------------省略----------------- class Sample6 { public static void main(String[] args) throws IOException { System.out.println("整数を3つ入力してください。") ; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ; String str1 = br.readLine() ; String str2 = br.readLine() ; String str3 = br.readLine() ; int sum = 0 ; sum += Integer.parseInt(str1) ; -------------------略----------------- int sum = 0 ; とありますが、0と設定しておく必要はありますか? 無いとまずいですか? いきなりこのコードが出てきたと思うのですが どこかに書いてましたっけ?

    • ベストアンサー
    • Java
  • エラーの訂正でアドバイスください。

    javaプログラミング超初心者です import java.io.*; public class ex22b { public static void main(String[] arg) { System.out.print("x: "); int x = (new Integer (in.readLine())). intValue(); System.out.print("y: "); int y = (new Integer (in.readLine())). intValue(); int a; while (y > 0) { a = a + x; System.out.println("kekka = " + a); System.out.println("y = " + y); y = y - 1; } System.out.println("乗算結果は " + a); } } というソースを書いたら、コンパイルの際に シンボルを見つけられません シンボル:変数 in 場所  :ex22bのクラス int x = (new Integer (in.readLine())). intValue();            ^ int y = (new Integer (in.readLine())). intValue();            ^ というエラーが出ました。 どこをどう直したらいいのでしょうか。

    • ベストアンサー
    • Java
  • 簡易電卓の問題がわかりません!

    簡易電卓のプログラミングについてご教授お願いしたく投稿いたしました。ほぼ合っていると思うのですが、実行できません。一番下の・・・の部分のプログラミングを教えてください!よろしくお願いいたします! import java.io.*; class TestCalc{ public static void main(String[] arg) { BufferedReader input= new BufferedReader(new InputStreamReader(System.in)); Calc calc=new Calc(); try{ String line; System.out.print("==> "); while((line=input.readLine())!=null){ int x=calc.process(line); System.out.println(x); System.out.print("==> "); } }catch(IOException e){ } } } //この後、Calcクラスの定義 class Calc{ private IntStack st; Calc(){ st=new IntStack(); } int process(String s) { if (s.equals("+")) { int n=st.pop()+st.pop(); st.push(n); return n; } else if (s.equals("-")) { } else if (s.equals("*")) { } else if (s.equals("/")) { } else { int n=Integer.parseInt(s); st.push(n); return n; } } } class IntStack{ ... }

    • ベストアンサー
    • Java