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 件のコメント:
コメントを投稿