Java中怎么让一个类只能生成一个对象
4个回答
推荐于2018-03-19
展开全部
同意一楼,使用JAVA反射机制中的单例模式,既该类构造方法为private,在自身创建一个静态的对象,给一个公共方法获取该对象,
对一楼的例子进行扩充
例:public class A{
private static A a = new A(); //声明为static是为了确保只有一个对象存在,详见static修饰符
private A(){} //构造方法为private,此类无法创建对象
public static A getA(){
return a;
}
}
当使用时: A b = new A();//错误做法,无法获取对象
A b = A.getA();//正确做法
对一楼的例子进行扩充
例:public class A{
private static A a = new A(); //声明为static是为了确保只有一个对象存在,详见static修饰符
private A(){} //构造方法为private,此类无法创建对象
public static A getA(){
return a;
}
}
当使用时: A b = new A();//错误做法,无法获取对象
A b = A.getA();//正确做法
2013-09-01
展开全部
好像不可以吧,只能说对类进行保护。
看用static计数器是不是你想要的,类只能被装载一次,第二次装载的时候就会抛出一个运行时异常
public class Main {
public static int objectCount = 0;
public Main() {
if(objectCount!= 0) {
throw new RuntimeException();
}
objectCount++;
}
public static void main(String[] args) {
Main m1 = new Main();
try {
Main m2 = new Main();
}catch(RuntimeException exp) {
System.out.println("Can not make multiple Object!");
}finally {
System.out.println("Continue...");
}
}
}
看用static计数器是不是你想要的,类只能被装载一次,第二次装载的时候就会抛出一个运行时异常
public class Main {
public static int objectCount = 0;
public Main() {
if(objectCount!= 0) {
throw new RuntimeException();
}
objectCount++;
}
public static void main(String[] args) {
Main m1 = new Main();
try {
Main m2 = new Main();
}catch(RuntimeException exp) {
System.out.println("Can not make multiple Object!");
}finally {
System.out.println("Continue...");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-01
展开全部
有个设计模式叫单例,单例的类就只能生成一个对象。
public class Sigleton {
private Sigleton instance = new Sigleton();
private Sigleton(){}
public static Sigleton getInstance(){
return instance;
}
}
以上写了个最简单的实现。可以参考一下
public class Sigleton {
private Sigleton instance = new Sigleton();
private Sigleton(){}
public static Sigleton getInstance(){
return instance;
}
}
以上写了个最简单的实现。可以参考一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-01
展开全部
这就是所谓的单例模式,baidu搜下就有了。
就是把构造方法设为private,然后自己控制一下。
就是把构造方法设为private,然后自己控制一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询