ファイルから読み取る InputStream への参照、またはファイルへの書き込みを行う OutputStream (または別の例として、Android 開発者の場合は MediaPlayer インスタンス) を保持するクラスがあるとします。
Java がオブジェクトを値渡しすることを知っているとしたら、次の疑似コードのようなものがあるとどうなるでしょうか?
class MyClass {
InputStream is;
public void read() {
// initialize inputstream here (assume it's reading from a file that contains the alphabet from A-z)
is.read();
}
public MyClass() {
this.read();
}
}
class OtherClass {
MyClass mine = new MyClass();
public OtherClass() {
mine.read();
LastClass lastClass = new LastClass(mine);
}
}
class LastClass {
MyClass his;
public LastClass(MyClass mc) {
his = mc;
his.read();
}
}
私の質問は、値でオブジェクトを渡しているので、オープン リソースへの参照をどのように維持できるのでしょうか? また、明確にするために、すべてが実行されるまでに、MyClass のインスタンスはいくつ存在するでしょうか?