java怎么限制类中创建一定数量的对象
1、第一步,首先确定的是,这个类的构造方法一定是私有化的

2、第二步,由于构造方法私有化,那就相当于只能在当前类使用这个构造方法了,那样肯定用处很局限,所以我们定义一个public公开的并static静态的方法来使其他类中能通过类名调用方法

3、第三步,在前面的步骤上,给类添加一个私有变量来统计已经创建的对象数量,和一个私有常量来设置最多能创建的对象数量

4、第四步,有了前面两个变量,我们就可以在返回对象的方法中添加逻辑,当前对象<设置的最大数量,就返回对象,否则返回null

5、第五步,测试一下,在主方法中写一个for循环来创建对象并输出

6、最后输出的效果也是复合要求的。

1、虽然前面的意见实现了只能创建一定数量的对象,但是按照正常的逻辑,创建的对象没有引用指向的时候,这个会被清除,那么我应该就可以再次创建。
简单一点说:就是能创建10个,我现在也创建10个了,但是我将其中一个对象的引用指定为null之后,我就应该又可以创建一个对象了啊
例如测试代码如下

2、但是看一下执行效果,还是只是前10次创建了对象,后面赋为空之后,也还是10

3、后来查阅了一下可以重写finalize方法,来模拟对象为空之后的操作,但是这个方法是垃圾回收器GC随机执行,可能调用,也看不调用,所以也不是很好用

4、最后附上源代码
public class Demo {
//统计创建的对象数量
private static int count=0;
//常量来设置最多能创建的对象数量
private static final int LIMIT=10;
private Demo() {
//这里面写什么自己看情况
}
public static Demo getDemo() {
if(count<LIMIT) {
count++;
return new Demo();
}else {
return null;
}
}
@Override
protected void finalize() throws Throwable {
count--;
}
public static void main(String[] args) {
for(int i=0;i<20;i++) {
Object a=getDemo();
if(i%2==0) {
a=null;
}
System.out.println(a);
}
}
}