关于java中static关键字在单态设计模式的应用学习和总结
2011-11-30 16:02
786 查看
在java开发中,对于static关键字都不陌生,但是对static的理解却是浅浅而谈。
static关键字修饰的变量是静态变量,修饰的方法是静态方法,它们在类被加载时调用(包括static的静态代码块),而且只执行一次。所以调用静态变量和静态方法不用创建对象就可以直接使用,在类内部直接调用即可,在类外部使用类名.变量名的方式调用。当然了,使用类的实例同样可以调用。
所谓单态设计模式,就是采用一定的方法保证在整个软件系统中,对于某一个类只能存在一个对象实例,并且这个类只提供一个取得其对象实例的方法。
设计思路:既然只需要一个对象实例,那么该类的构造方法就需要private修饰,这样在类的外部就不能够实例化该类的对象了,要使用该类的对象怎么办呢?刚才提了在该类的内部提供一个取得其对象实例的方法(返回一个该类的实例),此方法要在外部被调用因此需要static修饰,又因为静态方法不能调用非静态的变量和方法,因此在该类中创建的那个对象也需要使用static来修饰。这样就保证该类只产生了一个对象。
举例如下:
static关键字修饰的变量是静态变量,修饰的方法是静态方法,它们在类被加载时调用(包括static的静态代码块),而且只执行一次。所以调用静态变量和静态方法不用创建对象就可以直接使用,在类内部直接调用即可,在类外部使用类名.变量名的方式调用。当然了,使用类的实例同样可以调用。
所谓单态设计模式,就是采用一定的方法保证在整个软件系统中,对于某一个类只能存在一个对象实例,并且这个类只提供一个取得其对象实例的方法。
设计思路:既然只需要一个对象实例,那么该类的构造方法就需要private修饰,这样在类的外部就不能够实例化该类的对象了,要使用该类的对象怎么办呢?刚才提了在该类的内部提供一个取得其对象实例的方法(返回一个该类的实例),此方法要在外部被调用因此需要static修饰,又因为静态方法不能调用非静态的变量和方法,因此在该类中创建的那个对象也需要使用static来修饰。这样就保证该类只产生了一个对象。
举例如下:
public class Chinese { public static void main(String args[]){ China china1=China.Instance(); //得到一个China的实例 China china2=China.Instance(); //得到一个China的实例 System.out.println(china1==china2); //此时china1和china2引用的是同一个变量,因此两者是相等的,返回true } } class China{ static China china=new China(); //静态的变量 public static China Instance(){ //返回一个China实例 return china; } }
相关文章推荐
- 关于static静态的、继承、接口interface、final关键字、单例设计模式总结
- JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式
- Java学习总结(8)—内存流,打印流,对象流,RandomAccessFile,装饰者设计模式
- Java设计模式学习总结
- 设计模式学习总结系列应用实例
- Java基础学习总结(8)——Java23种设计模式(Design Patterns)详解
- Java学习总结(8)—内存流,打印流,对象流,RandomAccessFile,装饰者设计模式
- JAVA设计模式学习总结
- 黑马程序员 Java基础 面向对象:static关键字 main函数 单例设计模式
- java基础学习总结——static关键字
- 黑马程序员--Java学习日记之总结复习(多线程和设计模式)
- java基础学习总结——static关键字
- Java基础(面向对象二——static关键字、主函数定义和单例设计模式)
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- Java-马士兵设计模式学习笔记-总结
- java的设计模式,学习心得总结-工厂模式
- java学习之路 之 高级类特性2-关键字static、类变量、类方法、单例模式
- Java基础学习总结(10)——static关键字
- java - 设计模式学习总结
- Java设计模式学习心得总结