-PR-
解決済み

さっきの質問の続きなんですが。。。。。

  • 暇なときにでも
  • 質問No.23296
  • 閲覧数27
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 24% (13/53)

class Rots{
double thetaX, thetaY, thetaZ;
}

public class DemoData{

Rots[] rots = new Rots[16];

public DemoData(){
for(int i=0; i<rots.length; i++) {
rots[i] = new Rots();
}
}

void changeTheta(int i, double dx, double dy){
rots[i].thetaX += dx;
rots[i].thetaY += dy;
System.out.println("rots[i].dx= "+rots[i].thetaX );
}

}

というプログラムがあります。他のファイルで
DemoData dd = new DemoData();
if(j<=16 && j>=0) dd.changeTheta(j, thetax, thetay);

と2回以上呼ぶと、rots[i].thetaX、rots[i].thetaY
の値が加算されずに、毎回渡されたままのdx、dy
の値がプリントされてしまいます。どうしてでしょうか?
もう一度助けてください。お願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル9

ベストアンサー率 62% (48/77)

まず加算されない理由ですが、DemoDataクラスがnewされる時に必ずRotsをnewするように書いていますよね?
(Rots[] rots = new Rots[16];の部分です)
これだとDemoData dd = new DemoData();するたびにRotsクラスも新たにnewされるため以前のRotsに
加算されるはずがありません。DemoData dd = new DemoData();を実行すればおにゅーのRotsが毎回
生成されてしまいますからね。
ただ加算させてSystem.out.printlnしたいだけならばDemoData dd = new DemoData();が2回以上呼ばれないように
すれば大丈夫です。
足りない部分がありましたら補足していただけると幸いです。

【ちょこっとサンプル】
(加算されない例)
public class Frame1 extends JFrame {
  JButton jButton1 = new JButton();

 ----中略----

  //ボタン押下時にDemoData生成&計算
  void jButton1_actionPerformed(ActionEvent e) {
    DemoData dd = new DemoData();
    dd.changeTheta(0, 1, 1);
  }
}
(コンソール出力結果:ボタン5回押下)
rots[i].dx= 1.0
rots[i].dx= 1.0
rots[i].dx= 1.0
rots[i].dx= 1.0
rots[i].dx= 1.0

(加算される例)
public class Frame1 extends JFrame {
  JButton jButton1 = new JButton();
  //DemoDataインスタンス生成
  DemoData dd = new DemoData();

 ----中略----

  //ボタン押下時に計算
  void jButton1_actionPerformed(ActionEvent e) {
    dd.changeTheta(0, 1, 1);
  }
}
(コンソール出力結果:ボタン5回押下)
rots[i].dx= 1.0
rots[i].dx= 2.0
rots[i].dx= 3.0
rots[i].dx= 4.0
rots[i].dx= 5.0
お礼コメント
shootingfish

お礼率 24% (13/53)

ありがとうございました。できました!!
そうですよね。にゅーしたらだめですよね。


サンプルまで書いていただいて、
本当に助かりました。
投稿日時 - 2001-01-09 10:52:17
-PR-
-PR-
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ