エンクロージングインスタンス
| 日本語 | 囲い込み実体 |
| 英語 | 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
{
}
}




