关于java内部类

关于java内部类,这篇文章写的非常好。尊重作者的劳动成果:
http://www.cnblogs.com/dolphin0520/p/3811445.html

现在写点我自己在作者基础上的一点总结:
   这里有一个问题,接口到底能不能new,一般的答案都是不可以。但是事实上却是可以的,什么时候可以?当他作为一个匿名内部类的时候。

   内部类主要的用途就是匿名内部类,用于某些回调,以及一些事件的调用。
  
   内部类访问外部类的局部变量为什么局部变量必须是final的? 因为java采用复制的方法将局部变量的值拷贝复制,这样如果在内部类中修改该变量就会导致局部变量和内部类中的变量不一致,为了解决这个问题,所以加了final关键字不允许对变量进行修改。

一个基于java内部类的单例模式:
public class SingletonInner {
private SingletonInner(){

}
private static class Inner{
private final static SingletonInner singletonInner = new SingletonInner();
}
public static SingletonInner getInstance(){
return Inner.singletonInner;
}


}

猜你喜欢

转载自chen-sai-201607223902.iteye.com/blog/2329379