您的位置:首页 > 编程语言 > Java开发

关于java中static关键字在单态设计模式的应用学习和总结

2011-11-30 16:02 786 查看
在java开发中,对于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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: