成员内部类,局部内部类,匿名内部类与Static,final
- UID
- 1066743
|
成员内部类,局部内部类,匿名内部类与Static,final
非 静态成员内部类
public class InnerClassDemo {
public static void main(String[] args) {
InnerClassDemo innerClassDemo = new InnerClassDemo();
}
class TestDemo {
}
}
非 静态成员内部类反编译class
public class InnerClassDemo
{
class TestDemo
{
final InnerClassDemo this$0;
TestDemo()
{
this.this$0 = InnerClassDemo.this;
super();
}
}
public InnerClassDemo()
{
}
public static void main(String args[])
{
InnerClassDemo innerClassDemo = new InnerClassDemo();
}
}
静态内部类
public class InnerClassDemo {
public static void main(String[] args) {
InnerClassDemo innerClassDemo = new InnerClassDemo();
}
static class TestDemo {
}
}
静态内部类反编译class
public class InnerClassDemo
{
static class TestDemo
{
TestDemo()
{
}
}
public InnerClassDemo()
{
}
public static void main(String args[])
{
InnerClassDemo innerClassDemo = new InnerClassDemo();
}
}
对比看的很清楚,编译器自动帮我们添加了无参的构造方法
非静态的成员内部类持有了外部类的引用
应该知道,静态方法是不能用this关键字的
其实可以这么理解,静态的是类级别的,所以不能用this
内部类加static有什么区别,有什么好处? |
|
|
|
|
|