- 締切済み
java内部クラスについて
内部クラスがstaticな場合 public class mainclass{ public static void main(String[] args) { innerClass ic = new innerClass(); } public static class innerClass{ } } と innerClass ic = new innerClass();で動作しnewできますが、 class が static でない場合どういう書き方になりますでしょうか? 色々と理解不足がある状況だとおもいますがよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- amanojaku1
- ベストアンサー率54% (265/488)
基本は「public static」は無しにして、メイン・クラスの外に出す、どうしてもpublicが必要なが必要な場合は別ファイルを作る、と言う感じでしょうか。
- amanojaku1
- ベストアンサー率54% (265/488)
「回答No.1」はインナー・クラスにしないと言う事です。
お礼
よくよく考えたら内部クラスではstatic無しに実現できないですね。 ありがとうございました。
- amanojaku1
- ベストアンサー率54% (265/488)
>public class mainclass{ >static dynamic d; >public static void main(String[] args) { >d = new dynamic(); >} >} ↑「static dynamic d;」の定義は必ず「main(~)」メソッドの外で定義して下さい。
お礼
よくよく考えたら内部クラスではstatic無しに実現できないですね。 ありがとうございました。
- amanojaku1
- ベストアンサー率54% (265/488)
冗長的な感はありますが起動用クラスを作れば、別途ファイルを作る必要はありません(下記参照)。 mainメソッド内は「d = new dynamic();」だけにして、「dynamic( )」コンストラクターにプログラムを記述して下さい(dynamicの名前は分かりやすければ何でも良いです) public class mainclass{ static dynamic d; public static void main(String[] args) { d = new dynamic(); } } class dynamic{ dynamic( ){ innerClass ic = new innerClass(); } public class innerClass{ } }
お礼
よくよく考えたら内部クラスではstatic無しに実現できないですね。 ありがとうございました。
- amanojaku1
- ベストアンサー率54% (265/488)
「public static」を消して、mainclassの外に出して下さい(下記参照) 「public」を残したい場合は「innerClass.java」と言うファイルを作って、そのファイルに「innerClass」を移動して下さい public class mainclass{ public static void main(String[] args) { innerClass ic = new innerClass(); } } class innerClass{ }
お礼
よくよく考えたら内部クラスではstatic無しに実現できないですね。 ありがとうございました。
お礼
よくよく考えたら内部クラスではstatic無しに実現できないですね。 ありがとうございました。