public class Outer { }
コンパイル:
Outer.class
---------------------------------------------------
public class Outer { private class Inner{} }
コンパイル:
Outer.class
Outer$Inner.class
---------------------------------------------------
public class Outer { private class Inner{} //privateなコンストラクタができている private void hoge(){ new Inner(); //privateなコンストラクタ持ちの内部クラスをコンパイルすると・・・ } }
コンパイル:
Outer.class
Outer$Inner.class
Outer$1.class
---------------------------------------------------
public class Outer { public class Inner{} //publicにすれば Outer$1.classはできない private void hoge(){ new Inner(); } }
コンパイル:
Outer.class
Outer$Inner.class
---------------------------------------------------
public class Outer { public class Inner{ private Inner(){} //クラスはpublicだけどコンストラクタはprivate } private void hoge(){ new Inner(); } }
コンパイル:
Outer.class
Outer$Inner.class
Outer$1.class
---------------------------------------------------
public class Outer { public class Inner{ private Inner(){} private Inner(String arg){} } private void hoge(){ new Inner(); new Inner(""); //複数private コンストラクタを作っても変わらない } }
コンパイル:
Outer.class
Outer$Inner.class
Outer$1.class
0 件のコメント:
コメントを投稿