【延时加载】
GiantDragon.java:
package com.java.charactor; public class GiantDragon { //将构造方法改造为私有化,使得该类无法在外部通过new实例化 private GiantDragon(){ } //准备一个类属性,暂时指向null private static GiantDragon instance; //提供给调用者获取该类对象的方法(只能获取唯一一个该类对象) public static GiantDragon getInstance(){ //第一次访问的时候,发现instance没有指向任何对象,则这时实例化一个对象 if(null == instance){ instance = new GiantDragon(); } return instance; } }
TestGiantDragon.java:
package com.java.test; import com.java.charactor.GiantDragon; public class TestGiantDragon { public static void main(String[] args) { //通过类名来调用类方法 GiantDragon g = GiantDragon.getInstance(); GiantDragon g1 = GiantDragon.getInstance(); GiantDragon g2 = GiantDragon.getInstance(); //其实都是同一个对象 System.out.println(g==g1); System.out.println(g1==g2); System.out.println(g==g2); } }