- - PR -
クラス名の中の$って何を表すんでしょう?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-03-04 18:36
こんにちはナスティキャットです。
素人の質問かもしれませんが・・・ クラス名で間に$マークがあるものがありますがこれは何なんでしょう? 気になったのでどなたか教えていただけませんか? 例) protected class hogehoge$Privileged implements PrivilegedAction{ ・・・・・ } | ||||
|
投稿日時: 2004-03-04 19:52
hogehogeクラスの中の
内部クラスPrivileged ということです。 | ||||
|
投稿日時: 2004-03-04 22:32
ちなみに、SomeClass.class の中で無名クラスを使用している場合、SomeClass$1.class 、SomeClass$2.class のように、コンパイラが便宜的な名前を与えてくれます。
| ||||
|
投稿日時: 2004-03-05 11:29
返信ありがとうございます。
内部クラスを書くとコンパイル時にhogehoge$Privileged.classのようなファイルができ、 JAVAファイルのクラス名に$を使うと内部クラスを別のJAVAファイルに書くことができるんですね。 内部クラスを今まで使ったことがあまり無かったので知りませんでした。 | ||||
|
投稿日時: 2004-03-05 13:23
少し勘違いされているような・・・。 内部クラスのコーディングには $ をクラス名に含めなくても、class ファイルになる時に、$ が付きます。 例えば、Foo.java の中で、Bar と言う内部クラスをコーディングしたとして、このソースをコンパイルすると、Foo.class と Foo$Bar.class が生成されます。 1 つのソースファイルから、2 つのクラスファイルが生成されるってことです。 | ||||
|
投稿日時: 2004-03-05 20:47
仕事中に同じようなことを説明した事があります。 今後の基本となるので確実に理解しておいたほうがよいかと。 | ||||
1
