public class InnerClass {
class Content {
private int i = 11;
}
//content方法在外部类中
public Content content(){
return new Content();
}
}
1. 第一种创建方式
先创建外部类对象,然后再借助外部类来创建内部类。
public static void main(String[] args) {
InnerClass in = new InnerClass();
InnerClass.Content content = in.new Content();
//也可以写成
// InnerClass.Content content = new InnerClass().new Content();
}
2.第二种创建方式
也是先创建外部类对象,但之后将 new Content();方法封装到content方法内。
public static void main(String[] args) {
InnerClass in = new InnerClass();
InnerClass.Content content1 = in.content();
}
3.第三种创建方法
在内部类方法中用 Content content = new Content() 创建(注意这个只能在非静态方法中能用,在静态方法中不可用)。因为在静态区(即静态方法、静态初始化块等)中无法直接创建非静态内部类的对象,因为静态区没有外部类的实例来支持内部类对象的创建。
public class InnerClass {
class Content {
private int i = 11;
}
public void content(){
Content content = new Content();
}
}
4.第四种创建方法
这是静态类的创建方法直接Content content = new Content() 就行
public class InnerClass {
static class Content {
private int i = 11;
}
public static void main(String[] args) {
Content content = new Content();
}
}