前提・実現したいこと
はじめまして。
最近Javaを勉強し始めましたkai0201を申します。
今Javaのある課題に取り組んでいるのですが、なかなかエラーが解決できず、
今回質問させていただきました。
課題内容は以下の通りです。
1.Testmainメソッド内で変数test3を宣言し、hikakuメソッドの戻り値を受け取る。
2.hikakuメソッド内で受け取った2つのインスタンスのaとbの合計値を比較し、大きい方を戻り値として返す。aとbの合計が一緒の場合は、先に受け取った方を返す。
3.Test2のhikakuメソッドに作成した2つのTest1インスタンスを渡す。
4.Testmainのmainメソッド内でTest1のインスタンス2つとTest2のインスタンスを作成する。
以上です。
現在そこそこ時間を割いて考えているのですが、分からずじまいです。。
(もしかしたら、とんちんかんなロジックを書いているかもしれません。。。。)
また、特に私が頭を悩ませているのは、メソッドの戻り値を他のクラスのへ受け渡す際の、
return の書き方に悩んでおります。
複数のreturnがある場合は、配列に格納して返すのが、一般的なのでしょうか?
お手数をおかけしますが、どなたかご教授お願い致します。
該当のソースコード
Java
1 2 3class Test1 { 4 5 // フィールド 6 private int a; 7 private int b; 8 9 // コンストラクタ 10 Test1(int a,int b) { 11 this.a = a; 12 this.b = b; 13 } 14 15 // メソッド 16 public int getA() { 17 return this.a ; 18 } 19 20 public int getB() { 21 return this.b ; 22 } 23} 24 25class Test2 { 26 27 // フィールド変数 28 public int[] result1; // 合計値を入れる変数 29 public int result2; // 比較した値を入れる変数 30 public int test; // 合計値が同じだった場合 31 32 // メソッド 33 public Test1 hikaku(Test1 a,Test1 b) { 34 35 // インスタンス 36 TestMain y = new TestMain(); 37 38 // getA,getBを取得して足し算 39 // 取得した値をresult[]に代入 40 int[] result1= {(a.getA() + b.getB())}; 41 42 if (result1[0] == result1[1]) { 43 44 // 合計値が同じだった場合 45 test = result1[0]; 46 47 }else { 48 // 合計値を比較 49 result2 = Math.max(result1[0], result1[1]); 50 } 51 // test3へ値を返す 52 return y.test3; 53 54 } 55} 56 57class TestMain { 58 59 // フィールド変数 60 public int test3; 61 62 public static void main(String[] args) { 63 // TODO 自動生成されたメソッド・スタブ 64 65 // Test1インスタンス 66 Test1 s = new Test1(5,6); 67 Test1 s2 = new Test1(5,7); 68 69 // Test2インスタンス 70 Test2 f = new Test2(); 71 72 // Test2.hikakuの呼び出し 73 Test1 test3 = f.hikaku(s,s2); 74 75 System.out.println((test3.getA()),(test3.getB())); 76 } 77 78}
補足情報(FW/ツールのバージョンなど)
eqlipce を使用しております。
あなたの回答
tips
プレビュー