关于java内部类 博客分类: java java
程序员文章站
2024-03-14 12:54:28
...
关于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;
}
}
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;
}
}
推荐阅读
-
TLV编码 博客分类: java基础 tlv编码
-
一个非常简单的java缓存管理类 博客分类: java缓存
-
关于java内部类 博客分类: java java
-
java static关键字的作用 博客分类: java static关键字
-
读ExecutorCompletionService源码 博客分类: java多线程 java
-
读WeakHashMap源码 博客分类: java集合 java
-
System.arraycopy()实现数组之间的复制 博客分类: java基础 System.arraycopy()
-
读WeakHashMap源码 博客分类: java集合 java
-
BigDecimal 博客分类: java
-
Java事务处理全解析(一至八) 博客分类: jta jta