首页 > 代码库 > 张小二求职记之 单例模式(二)

张小二求职记之 单例模式(二)

z:大侠,我又回来了。

M:

内部类懂了,其实设计模式很多考察的都是基础知识,一个学生能有什么项目工程经验呢?你很上进。咱们聊聊内部类,特别是单例模式中的静态内部类.我们开始吧;

M.什么时内部类?

简单来说就是类中有类。

M:静态内部类和普通内部类有什么区别?

普通内部类可以理解为外部类的普通方法,需要创建外部对象,说白了普通类是属于某个对象

OutClass.InnerClass obj = outClassInstance.new InnerClass();

静态内部类可以理解为静态方法,属于整个类的,无需创建外部对象。

AAA.StaticInner in = new AAA.StaticInner

M:普通内部类中可以有static 属性吗?为什么?

不可以,不知道

http://blog.csdn.net/jiangxinyu/article/details/8177326,太细了,记不住,以后慢慢来。,

 

M:外部类可以访问内部类的所有方法与属性,包括私有方法与属性。吗?

是的

M:明白昨天你写的代码了吗?我循循善诱,就是为了告诉你答案。你还不会就是对不起哥

z:

private   static class SingletonHolder
    {
        private  static Singleton instance=new Singleton();
       
    }
   
    public  static Singleton getInstance()
    {
       
        return SingletonHolder.instance ;
    }

z: 我尝试着系统总结一下吧

内部类设为私有,为了不想让除外部类以外的类使用,

首先

Singleton.getInstance();

因为getinstance是static所以,必须访问static属性,

而static属性只能在static 的内部类。

M:你有成为优秀工程师的潜质,寻根究底。

z:其实对于内部类我还不熟。

M:单例模式你觉得自己研究的怎么样了?

z:应该不错了,

M: 有两个流传很广的多线程版本的吧,你会写吗?

z:我会写,但是我知道你要问我多线程的基础,所我想在回去准备。

M:明天见