- PR -

クラス名の中の$って何を表すんでしょう?

1
投稿者投稿内容
ナスティキャット
常連さん
会議室デビュー日: 2004/03/03
投稿数: 24
投稿日時: 2004-03-04 18:36
こんにちはナスティキャットです。

素人の質問かもしれませんが・・・
クラス名で間に$マークがあるものがありますがこれは何なんでしょう?
気になったのでどなたか教えていただけませんか?

例)
protected class hogehoge$Privileged implements PrivilegedAction{
  
  ・・・・・

}
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2004-03-04 19:52
hogehogeクラスの中の
内部クラスPrivileged
ということです。
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-04 22:32
ちなみに、SomeClass.class の中で無名クラスを使用している場合、SomeClass$1.class 、SomeClass$2.class のように、コンパイラが便宜的な名前を与えてくれます。
ナスティキャット
常連さん
会議室デビュー日: 2004/03/03
投稿数: 24
投稿日時: 2004-03-05 11:29
返信ありがとうございます。

内部クラスを書くとコンパイル時にhogehoge$Privileged.classのようなファイルができ、
JAVAファイルのクラス名に$を使うと内部クラスを別のJAVAファイルに書くことができるんですね。
内部クラスを今まで使ったことがあまり無かったので知りませんでした。
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-03-05 13:23
引用:

ナスティキャットさんの書き込み (2004-03-05 11:29) より:
JAVAファイルのクラス名に$を使うと内部クラスを別のJAVAファイルに書くことができるんですね。


少し勘違いされているような・・・。
内部クラスのコーディングには $ をクラス名に含めなくても、class ファイルになる時に、$ が付きます。
例えば、Foo.java の中で、Bar と言う内部クラスをコーディングしたとして、このソースをコンパイルすると、Foo.class と Foo$Bar.class が生成されます。
1 つのソースファイルから、2 つのクラスファイルが生成されるってことです。
SJ0392
ベテラン
会議室デビュー日: 2004/02/05
投稿数: 62
お住まい・勤務地: 神奈川・横浜
投稿日時: 2004-03-05 20:47
引用:

でゅうくさんの書き込み (2004-03-05 13:23) より:
1 つのソースファイルから、2 つのクラスファイルが生成されるってことです。


仕事中に同じようなことを説明した事があります。
今後の基本となるので確実に理解しておいたほうがよいかと。
1

スキルアップ/キャリアアップ(JOB@IT)