インスタンスをfor文で足していく
javaの クラス型同士の繰り返し処理による演算について
インスタンスのフィールド中の配列を足していって合計を表示するプログラムを書いているのですが
同じ型同士のインスタンスを繰り返し処理でsum=sum+w.add(w);とかくとこの部分にエラーが出てしまいます。普通の変数ならこのようなやり方でも対丈夫なのですがクラス型の場合はどのようにすればよいのでしょうか。以下、ソースコードになります
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
java
1public class Test{ 2 class MyWeight{ 3 private int ton; 4 private int kgram; 5 private int gram; 6 7 8 public void setWeight(int t,int kg,int gr) { 9 ton = t + ((kg + (gr/1000)) /1000) ; 10 kgram = (kg + gr/1000) % 1000; 11 gram = gr % 1000; 12 13 } 14 public int getT() { 15 return ton; 16 } 17 public int getKG() { 18 return kgram; 19 } 20 public int getG(){ 21 return gram; 22 } 23 public MyWeight add(MyWeight x) { 24 int t = 0,kg = 0,gr = 0; 25 t = t+ x.getT(); 26 kg = kg + x.getKG(); 27 gr = gr+ x.getG(); 28 MyWeight y = new MyWeight(); 29 y.setWeight( t, kg, gr); 30 return y; 31 32 } 33 34 public void main(String args[]) { 35 int tonn[] = { 20, 30, 10, 20, 20 }; 36 int kgr[] = { 250, 780, 190, 360, 450 }; 37 int gramu[] = { 310, 400, 960, 210, 730 }; 38 39 MyWeight w=new MyWeight(); 40 MyWeight sum; 41 42 for(int i=0;i<4;i++) { 43 w.setWeight(tonn[i],kgr[i],gramu[i]); 44 sum = sum + w.add(w); 45 } 46 System.out.println("合計は"+sum.getT()+"トン"+sum.getKG()+"キログラム"+sum.getG()+"です"); 47 } 48 } 49}
よろしくお願いいたします。
追記
java
1 2 public class MyWeight{ 3 private int ton; 4 private int kgram; 5 private int gram; 6 7 8 public void setWeight(int t,int kg,int gr) { 9 ton = t + ((kg + (gr/1000)) /1000) ; 10 kgram = (kg + gr/1000) % 1000; 11 gram = gr % 1000; 12 13 } 14 public int getT() { 15 return ton; 16 } 17 public int getKG() { 18 return kgram; 19 } 20 public int getG(){ 21 return gram; 22 } 23 public MyWeight add(MyWeight x) { 24 int t = 0,kg = 0,gr = 0; 25 t = t+ x.getT(); 26 kg = kg + x.getKG(); 27 gr = gr+ x.getG(); 28 MyWeight y = new MyWeight(); 29 y.setWeight( t, kg, gr); 30 return y; 31 32 } 33 34 35 public static void main(String args[]) { 36 int tonn[] = { 20, 30, 10, 20, 20 }; 37 int kgr[] = { 250, 780, 190, 360, 450 }; 38 int gramu[] = { 310, 400, 960, 210, 730 }; 39 40 MyWeight w=new MyWeight(); 41 MyWeight sum = new MyWeight(); 42 43 for(int i=0;i<5;i++) { 44 w.setWeight(tonn[i],kgr[i],gramu[i]); 45 sum.setWeight(tonn[i],kgr[i],gramu[i]); 46 sum = sum.add(w); 47 48 } 49 System.out.println("sum"+sum.getT()+"t"+sum.getKG()+"kg"+sum.getG()+"g"); 50 } 51 }
*すみません、下の方のクラスが見つからなかった問題は解決しました。
回答を参考に以上のように修正してみたのですが、[4]番目の配列しか表示されませんでした.すべてのすべての配列を合計したのを表示したいのですがよくわかりません。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/15 05:39
2019/04/15 06:34