- ベストアンサー
クラス間でのデータ参照
あるクラスでArrayListにデータを格納し、そのデータを別のクラスで使いたいと思っています。 Javaでそれをするために、どのようにすればよいのでしょうか? 何か知識がある方教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> つまり、教えてもらった方法は、 > *リストを作るクラス > *そのリストを使って処理をするクラス > *命令を出すクラス > の三つに分かれているということですか? はい、 Aru: リストを作るクラス Betsu~3: そのリストを使って処理をするクラス です。 別のクラスがあるクラスのインスタンスの生成から管理していれば, 命令を出すクラスを作らずともかまいません。 class Betsu4 { public void shori() { Aru aru = new Aru(); aru.createList(); ArrayList list = aru.getList(); } }
その他の回答 (2)
- pcbeginner
- ベストアンサー率46% (261/560)
参照するだけならいいですけど、 データの操作(削除、追加、変更)をすると 別のクラス上だけでなく、元のクラスで保持しているデータも変更されますので、 気を付けて下さい。
お礼
アドバイスありがとうございます。 気をつけたいと思います。
- satomi3951
- ベストアンサー率71% (98/137)
アクセッサを用意して、それを利用します。 リストを作る側のクラス class Aru { ArrayList list; public void createList() { list = new ArrayList(); } public ArrayList getList() { return list; } } 引数で渡して使う class Betsu { public void use(ArrayList list) { // 引数のlistを使う } } プロパティにセットして使う class Betsu2 { ArrayList list; public void setList(ArrayList list) { this.list = list; } public void use() { // フィールドのlistを使う } } 作る側のクラスを直接知っている。 class Betsu3 { Aru aru; public Betsu3(Aru aru) { this.aru = aru; } public void use() { ArrayList list = aru.getList(); // 取り出したlistを使う } } 使い方 Aru aru = new Aru(); aru.createList(); Betsu b1 = new Betsu(); b1.use(aru.getList()); Betsu2 b2 = new Betsu2(); b2.setList(aru.getList()); b2.use(); Betsu3 b3 = new Betsu3(aru); b3.use();
お礼
返信ありがとうございます。 早速ためしてみたいと思います。
補足
間違っていたら指摘してください。 つまり、教えてもらった方法は、 *リストを作るクラス *そのリストを使って処理をするクラス *命令を出すクラス の三つに分かれているということですか?
お礼
ありがとうございます。 やっと意味がわかってきました。 助かりました。