黑马程序员:单态设计模式static(使类在内存只有一个实例对象)

原创 2011年06月18日 21:26:00

/** 创建一个类在内存中 只有一个实例对象*/
  class Chinese
{
    static  Chinese obj= new Chinese();                                       
    /*  如果不用static修饰,每创建一个对象就会指向一个变量obj,obj又被创建新的对象以此循环下去,用了static 在对象未被创建就以分配了内存空间,并且是不变的。并且静态的方法只能访问静态的成员变量*/

private Chinese() {}
   public static Chinese getInstance()
                                      
  {
       return obj;
  }
  /*提供一个方法给外部访问,因为对象还未被创建所以是static的,可被外部访问所以是public
     返回值为对象 所以是Chinese */ 
}
  class TestChinese
{
   public static void main(String[] args){
   Chinese obj1=Chinese.getInstance();                
   Chinese obj2=Chinese.getInstance();       
  System.out.print(obj1==obj2);
   }
}

/*在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。同理 静态方法不能以任何形式引用 this和 super关键字。静态方法被调用时,this所引用的对象根本没有产生。
  

 

所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new 操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

*/

相关文章推荐

黑马程序员——学习日志5面向对象(static关键字,单例设计模式,抽象类,接口)

------- android培训、java培训、期待与您交流! ----------  --...

黑马程序员——static关键字 与简单的单态设计模式

---------------------- android培训、java培训、期待与您交流! ---------------------- Static 静态成员变量        当我...

黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)

------- android培训、java培训、期待与您交流! ----------   一、面向对象(static关键字) static:用于修饰成员(成员变量,成员函数) 当成员被静态关键字...

黑马程序员——面向对象06(static、对象初始化、单例设计模式)

——- android培训、java培训、期待与您交流! ———- 1.1:static(静态)关键字 1,static是一个修饰符,用于修饰成员(成员变量和成员函数)。当成员被静态修饰后,...

黑马程序员----面向对象2(主函数、工具类、文档注释、单例设计模式)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-main主函数 public static void main(String[] args) 主函数是一个特殊...

黑马程序员-day06static关键字和静态,单例设计模式

1.sattic关键字 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)。 党成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外。 还可以直接被类名调用。类名.静态成员...

黑马程序员——JAVA基础_02(static、单例设计模式)

static修饰符       用法:static是一个修饰符,用于修饰成员(成员变量,成员函数)。当成员被静态修饰后,就多了一个调                用 方式,除了可以被对象调用外,还可...

黑马程序员_java中代码块的概念--单态设计模式

代码块 :使用{} 括起来的一段代码块,根据不同的位置可以分为普通代码块、构造块、静态代码块、静态代码块 1.1 普通代码块:直接定义在方法中的代码块 1.2 构造块:直接在类中编写的代码块—–...

黑马程序员_Java基础_面向对象,封装,继承,单例设计模式,构造函数,构造代码块

一,面向对象 1,基本理解 面向对象其实是一种思想,现实生活中我们所看到的东西,包括想到的一个概念都可以看做是一个对象。 如果有人问到你对面向对象的理解,可以举一个例子说明,比如:我们去餐馆就餐...

黑马程序员——IO流——IO体系、装饰设计模式、流对象的选择

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- IO流:     用来处理设备之间的数据传输,Java对数据的操作时通过流的方式。Java...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员:单态设计模式static(使类在内存只有一个实例对象)
举报原因:
原因补充:

(最多只允许输入30个字)