最大1万円超分の電子書籍プレゼント♪

あるクラスでArrayListにデータを格納し、そのデータを別のクラスで使いたいと思っています。

Javaでそれをするために、どのようにすればよいのでしょうか?

何か知識がある方教えてください。

gooドクター

A 回答 (3件)

> つまり、教えてもらった方法は、


> *リストを作るクラス
> *そのリストを使って処理をするクラス
> *命令を出すクラス
> の三つに分かれているということですか?

はい、
Aru: リストを作るクラス
Betsu~3: そのリストを使って処理をするクラス
です。

別のクラスがあるクラスのインスタンスの生成から管理していれば,
命令を出すクラスを作らずともかまいません。
class Betsu4 {
public void shori() {
Aru aru = new Aru();
aru.createList();
ArrayList list = aru.getList();
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます。

やっと意味がわかってきました。

助かりました。

お礼日時:2011/12/12 13:31

参照するだけならいいですけど、


データの操作(削除、追加、変更)をすると
別のクラス上だけでなく、元のクラスで保持しているデータも変更されますので、
気を付けて下さい。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

気をつけたいと思います。

お礼日時:2011/12/12 12:07

アクセッサを用意して、それを利用します。



リストを作る側のクラス
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();

この回答への補足

間違っていたら指摘してください。

つまり、教えてもらった方法は、
*リストを作るクラス
*そのリストを使って処理をするクラス
*命令を出すクラス
の三つに分かれているということですか?

補足日時:2011/12/12 12:50
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
早速ためしてみたいと思います。

お礼日時:2011/12/12 11:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング