单例模式匿名内部类底层实现

2020-05-10 09:28:00 java常见问答 5606

可能大家也有了解过java中的各种设计模式,但是其中不得不说的的经典设计模式恐怕就是单列模式了,下面有兴趣的朋友们就跟小编一起来看看单例模式匿名内部类底层是如何实现的吧。

内部类:

定义如下:在一个类中可以去定义一个类,那么这个类就是内部类。

写法如下:

class Outer
{
    class Inner
    {
        .........
    }
}

其特点是:

1.内部类是不能和外部类重名的;

2.内部类的对象是可以访问本类的属性和方法的,也可以访问外部类的属性和方法(包括private声明的)。

内部类的分类如下所示:

成员内部类:

定义:在类的内部,方法的外部所定义的类为成员内部类;

特点:不能使用static变量;

内部类对象初始化:Outer.Inner inner=new Outer().new Inner();

静态内部类写法如下所示:

class Outer
{
    static class Inner
    {
        ....
    }
}

其特点是:可以使用static变量;

静态内部类对象初始化:Outer.Inner inner=new Outer.Inner();

局部内部类写法如下所示:

class Outer
{
    void aa()
    {
        class Inner
        {
            ....
        }
    }
}

其特点就是,局部内部类不可以使用private protected和public修饰符;不能包含静态成员。

匿名内部类定义:没有名字的内部类;

其写法如下所示:

new 类名()

new 类名()
{
    .......
};

其特点是,可以在该类重写父类方法,包括抽象类、接口中的抽象方法,也可重写普通类的方法;它返回的是该类的一个对象。

如何使用呢,一般是给抽象类、接口进行实例化并调用它们的抽象方法。

单例模式创建过程:

①创建一个私有的静态的该类对象;

②创建私有化构造器;

③创建一个公有的静态的返回该类对象的方法(判断该对象是否已初始化);

那么以上就是本篇文章的所有内容了,还想了解更多java常见问答知识,记得来关注本站最新消息哦。

推荐阅读:

求数值的整数次方(思路和实现) 

ReentrentLock是什么?该如何实现?

合并两个排序的链表(思路和实现)