手记

内部类,单例模式

内部类:

1.定义:

在一个类中可以定义一个类,这个类就是内部类

2.写法

  class  Outer{

   class Inner{

   .........

    }

}

3.特点:

①内部类不能和外部类重名

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

4.内部类的分类:

①成员内部类

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

    (2)特点:不能使用static变量

     (3)内部类对象初始化:

        Outer.Inner inner=new Outer().new Inner();

②静态内部类

(1)写法:

     class  Outer{

   static  class  Inner{

....

}

}

(2)特点:可以使用static变量

(3)静态内部类对象初始化:

   Outer.Inner inner=new Outer.Inner();

③局部内部类

(1)写法:

  class Outer{

  void  aa(){

   class Inner{

    ....

     }

    }

}

(2)特点: a.局部内部类不可以使用private protected和public修饰符

                    b.不能包含静态成员

④.匿名内部类

(1)定义:没有名字的内部类

(2)写法:

  new  类名(){

.......

};

(3)特点:

   a.可以在该类重写父类方法,包括抽象类、接口中的抽象方法,也可重写普通类的方法

   b.它返回的是该类的一个对象

(4)使用:一般是给抽象类、接口进行实例化并调用它们的抽象方法

单例模式创建过程:

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

②创建私有化构造器

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

Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例在。 使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回(garbage collection)。

一、懒汉式单例[java] view plaincopyprint?//懒汉式单例类.在第一次调用的时候实例化自己   public class Singleton {      private Singleton() {}      private static Singleton single=null;      //静态工厂方法       public static Singleton getInstance() {           if (single == null) {                 single = new Singleton();           }            return single;      }  }  二、饿汉式单例[java] view plaincopyprint?//饿汉式单例类.在类初始化时,已经自行实例化   public class Singleton1 {      private Singleton1() {}      private static final Singleton1 single = new Singleton1();      //静态工厂方法       public static Singleton1 getInstance() {          return single;      }  }  饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

原文链接:http://www.apkbus.com/blog-491882-60706.html

0人推荐
随时随地看视频
慕课网APP