
・エンクロージングインスタンスとは、外側クラスのインスタンスのことでしょうか?
・エンクロージング型とは、何のことですか?
>エンクロージング型とは内部クラスを持ったクラスのこと
・と書いてあるのですが、そうすると「エンクロージング型」=「外側クラス」なのでしょうか?
>外部クラスと関係性の強いクラスの場合に利用される
・どういう意味でしょうか?
・「外側クラス(外部クラス?)と、「エンクロージング型」の関係性を知りたいです
▽web用語辞典 - エンクロージング型
http://www23.atwiki.jp/sevenlives/pages/417.html
No.2ベストアンサー
- 回答日時:
まず、型の種類を整理しておきましょう。
Javaの型は、int や float などの基本型と参照型に大別されます。
参照型にはクラスとインターフェースが含まれます。参照型には他にも配列型と列挙型が有りますが、クラスの特殊なものと考えてよいでしょう。
> エンクロージングインスタンスとは、外側クラスのインスタンスのことでしょうか?
外側の型のインスタンスという事になります。外側のクラスのインスタンスもそうですが、外側の型がインターフェースの場合でもそのインスタンスはエンクロージングインスタンスという事になります。
> エンクロージング型とは内部クラスを持ったクラスのこと
内外共にクラスだけではないですね。
正確に言い直すと、「エンクロージング型とはネストした型を持った型のこと」となります。ネストした型はメンバ型とも言います。
もちろん、内部クラスを持ったクラスもエンクロージング型の一種です。
また、ネストした型には、内部クラス以外にも、 static なメンバクラス、メンバインターフェース(常にstatic)、ローカル内部クラス、無名クラス(匿名クラス)があります。
> 外部クラスと関係性の強いクラスの場合に利用される
まあ、傾向というか、ネストした型はそういう使われ方を想定していると言うべきでしょうか。
エンクロージング型と無関係なクラスをメンバーに持たせる事も出来ますが、それはバッドプラクティスと言ってよいでしょう。
> 「外側クラス(外部クラス?)と、「エンクロージング型」の関係性
外部クラス(正式な呼び方で有りませんが)はエンクロージング型の一種です。
おそらく、質問文のリンク先では説明を簡単にする為にインターフェースの存在を無視した書き方になっているのでしょう。ですから、「エンクロージング型」=「エンクロージングクラス」(外部クラス) というスタンスで書いているのかと。
参考URL:http://www.ne.jp/asahi/hishidama/home/tech/java/ …
回答ありがとうございました。
>「エンクロージング型とはネストした型を持った型のこと」となります。ネストした型はメンバ型とも言います。
>もちろん、内部クラスを持ったクラスもエンクロージング型の一種です。
>また、ネストした型には、内部クラス以外にも、 static なメンバクラス、メンバインターフェース(常にstatic)、ローカル内部クラス、無名クラス(匿名クラス)があります
・参考になりましたー
>エンクロージング型と無関係なクラスをメンバーに持たせる事も出来ますが、それはバッドプラクティスと言ってよいでしょう
・説明ありがとうございました
・「出来る出来ない」と「推奨かどうか」は別な話なんですねー
No.4
- 回答日時:
>▽Java Platform SE 6
> http://docs.oracle.com/javase/jp/6/api/
ではなくて
「Java Language Specification」
https://www.google.co.jp/search?q=java+language+ …
あたりを見てください。個人が訳したものでよければ
http://www49.atwiki.jp/akios/pages/18.html
がありますが信頼性はよくわかりません。
>>内部クラスというのは3種の型の総称です
>・そこら辺はどこに掲載されているのでしょうか?
ローカルクラス、匿名クラス、メンバクラスの説明で個別に inner class だと
説明されていたはずです。一箇所にまとまった記述は無かったと思います。
#仕様書なのでこういう点は不親切です。
場所は覚えていないので、仕様をあたってみてください。
回答ありがとうございました。
「Platform」ドキュメント見ても載っていないなと以前から疑問に思っていたのですが、「Language」ドキュメントが別にあるんですね。
初めて知りました。
リンク先、大変参考になりましたー
No.3
- 回答日時:
>内部クラス以外にも、 static なメンバクラス、
>メンバインターフェース(常にstatic)、ローカル内部クラス、
>無名クラス(匿名クラス)があります。
重箱の隅ですが、Java の仕様書では
ネストした型(=型に内包される型)=
ネストしたインターフェース、内部クラス、staticなメンバクラス
内部クラス(=staticではないネストしたクラス)=
staticではないメンバクラス、ローカルクラス、匿名クラス
なので、内部クラスというのは3種の型の総称です。
それと「外部クラス」という言葉は java の仕様には無いようです。
エンクロージング型という言葉の定義もありません。
Java の仕様書では、Enclosing はネストしたクラスを「取り囲んでいる」という
意味の形容詞として使われているだけです。
enclosingな型はそれ自体なにか特別な機能があるわけではないので
こうなったんだと思います。
この回答への補足
回答ありがとうございます。
>Java の仕様書では
・Java の仕様書とは、下記を指すのでしょうか?
・Java 公式サイト(ドキュメント)がどこか知りたいです
▽Java Platform SE 6
http://docs.oracle.com/javase/jp/6/api/
>内部クラスというのは3種の型の総称です
・そこら辺はどこに掲載されているのでしょうか?
No.1
- 回答日時:
>>エンクロージング型とは内部クラスを持ったクラスのこと
>・と書いてあるのですが、そうすると「エンクロージング型」=「外側クラス」なのでしょうか?
Javaでは間違いです。エンクロージング型は型を内包する型のことで
内包される型としては、インターフェース、staticのネストしたクラス、内部クラス
の3種類があります。
エンクロージング型もクラスとは限らず、インターフェースの場合もあります。
回答ありがとうございました。
>内包される型としては、インターフェース、staticのネストしたクラス、内部クラス
>の3種類があります
>エンクロージング型もクラスとは限らず、インターフェースの場合もあります
大変参考になりましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 友達・仲間 高2女子です。クラス替えで友達と一人だけ違うクラスになってしまい、ぼっちです。 クラスは陽キャ系の人 4 2022/04/14 00:12
- 学校 昔、中学生の頃は同じクラスでもたいていおとなしい組とやんちゃ組、優等生組、その他謎の少数派の4タイプ 2 2023/02/09 14:30
- 友達・仲間 好きな人のイツメングループを変えるようにしたい 1 2022/04/09 16:55
- 学校 上手く言えないんですけど、音が妙に気になるというか… 外も、学校のクラスの中も全部全部音が気になって 2 2022/09/25 19:05
- 友達・仲間 好きな人の属してるグループが変わって欲しい 2 2022/04/09 13:02
- 友達・仲間 高校1年生です。嫌いな人(性格が悪いある1人の女子)がいるんですが、その子と3年間同じクラスです(外 1 2022/10/14 21:57
- 学校 ろくに話したことのない子に嫌われてるかも知れません… 《スペック》私⇒陰キャ、交友関係は狭く深く 相 4 2023/01/21 17:01
- 高校 校外学習について。 高2女子です。 校外学習でクラス内で自由に班を決めるのですが、友達がおらず組む人 2 2022/04/17 23:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「隣の芝生は青く見える」現象...
-
同じクラスにならない確率を教...
-
dllと同じプロジェクトにする方法
-
java eclipse 型に解決できません
-
重複エラーを解決するには
-
main()を持つクラスが2つ以上...
-
小学4年の頃、好きな同級生にス...
-
フレームとウィンドウの違いに...
-
IPアドレスのクラスAを取得して...
-
そんなにお金がなくても年に1度...
-
どこからも呼ばれていない無意...
-
Java「デフォルトのパッケージ...
-
EclipseでJSPのコンパイルエラー
-
下記の問合せを行うクエリを、P...
-
UMLのクラス図はmain()も含むん...
-
「エンクロージング型」と「外...
-
共通で使う関数を集めたクラス...
-
恋愛
-
Cstring(日本語含む)をcharに...
-
Imports 文についての疑問!(VB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
3年間同じクラスになる確率
-
どこからも呼ばれていない無意...
-
共通で使う関数を集めたクラス...
-
ページ遷移時にアコーディオン...
-
同じパッケージ、クラス名が含...
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
EclipseでJSPのコンパイルエラー
-
コンボボックスのマウスホイー...
-
Cstring(日本語含む)をcharに...
-
dllと同じプロジェクトにする方法
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
重複エラーを解決するには
-
string formatについて
-
UMLのクラス図はmain()も含むん...
おすすめ情報