エンクロージングインスタンス
日本語 | 囲い込み実体 |
英語 | enclosing instance |
ふりがな | えんくろーじんぐいんすたんす |
フリガナ | エンクロージングインスタンス |
内部クラスにとっての「外部クラスのインスタンス」。
内部クラスのインスタンスは、「外部クラスのインスタンスの中に含まれる」という特殊なインスタンスとなる。そのため、内部クラスのインスタンスを作るためには、必ず外部クラスのインスタンスが必要となる。
その「外部クラスのインスタンス」が「エンクロージングインスタンス」である。内部クラスのインスタンスを「enclosing」つまり「囲い込む」インスタンスである。
内部クラスのインスタンスは、「外部クラスのインスタンスの中に含まれる」という特殊なインスタンスとなる。そのため、内部クラスのインスタンスを作るためには、必ず外部クラスのインスタンスが必要となる。
その「外部クラスのインスタンス」が「エンクロージングインスタンス」である。内部クラスのインスタンスを「enclosing」つまり「囲い込む」インスタンスである。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
// staticメソッド。
public static void main( String[] args )
{
// 内部クラスのインスタンスをstaticメソッド内で
// 作ることはできません。
new InnerClass();
// コンパイルエラー:
// 型 Sample のエンクロージング・インスタンスを持つ割り振りを明示的に指定する必要があります。(例 x.new A() で、x が Sample のインスタンス)
// この「エンクロージングインスタンス」とは、内部クラスにとっての
// 「自分を包んでくれるクラスのインスタンス」、つまり
// Sampleクラスのインスタンスのことです。
// 内部クラスは、「外部クラスのインスタンス」の中に
// 「内部クラスのインスタンス」がある、という
// 状態になります。
// この、「内部クラスのインスタンス」にとっての
// 「外部クラスのインスタンス」が
// 「エンクロージングインスタンス」です。
}
// 内部クラス。
public class InnerClass
{
}
}
public class Sample
{
// staticメソッド。
public static void main( String[] args )
{
// 内部クラスのインスタンスをstaticメソッド内で
// 作ることはできません。
new InnerClass();
// コンパイルエラー:
// 型 Sample のエンクロージング・インスタンスを持つ割り振りを明示的に指定する必要があります。(例 x.new A() で、x が Sample のインスタンス)
// この「エンクロージングインスタンス」とは、内部クラスにとっての
// 「自分を包んでくれるクラスのインスタンス」、つまり
// Sampleクラスのインスタンスのことです。
// 内部クラスは、「外部クラスのインスタンス」の中に
// 「内部クラスのインスタンス」がある、という
// 状態になります。
// この、「内部クラスのインスタンス」にとっての
// 「外部クラスのインスタンス」が
// 「エンクロージングインスタンス」です。
}
// 内部クラス。
public class InnerClass
{
}
}
// Sample.java public class Sample { // staticメソッド。 public static void main( String[] args ) { // 内部クラスのインスタンスをstaticメソッド内で // 作ることはできません。 new InnerClass(); // コンパイルエラー: // 型 Sample のエンクロージング・インスタンスを持つ割り振りを明示的に指定する必要があります。(例 x.new A() で、x が Sample のインスタンス) // この「エンクロージングインスタンス」とは、内部クラスにとっての // 「自分を包んでくれるクラスのインスタンス」、つまり // Sampleクラスのインスタンスのことです。 // 内部クラスは、「外部クラスのインスタンス」の中に // 「内部クラスのインスタンス」がある、という // 状態になります。 // この、「内部クラスのインスタンス」にとっての // 「外部クラスのインスタンス」が // 「エンクロージングインスタンス」です。 } // 内部クラス。 public class InnerClass { } }