java怎么限制类中创建一定数量的对象

2025-11-11 07:19:30

1、第一步,首先确定的是,这个类的构造方法一定是私有化

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

1、虽然前面的意见实现了只能创建一定数量的对象,但是按照正常的逻辑,创建的对象没有引用指向的时候,这个会被清除,那么我应该就可以再次创建。

简单一点说:就是能创建10个,我现在也创建10个了,但是我将其中一个对象的引用指定为null之后,我就应该又可以创建一个对象了啊

例如测试代码如下

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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

java怎么限制类中创建一定数量的对象

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);

}

}

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢