第1个回答 2012-10-03
不能被继承的话.只要用final声明就可以了.
只能实例化三次的话.就把构造器给私有化,然后声明一个list长度为3.每次get只能获取一个..最后就三个.
大概是下面这样子 只能new三次.但是可以使用之前的对象
import java.util.ArrayList;
import java.util.List;
public final class Test {
private static List<Test> objs = null;
private static int count = 0;
private Test() {
}
public static Test getTestObj(){
if(count==0){
objs = new ArrayList<Test>(3);
}
if(count<3){
Test obj = new Test();
objs.add(obj);
count++;
return obj;
}else{
return objs.get(0);
}
}
public static void main(String[] args) {
System.out.println(Test.getTestObj());
System.out.println(Test.getTestObj());
System.out.println(Test.getTestObj());
System.out.println(Test.getTestObj());
System.out.println(Test.getTestObj());
System.out.println(Test.getTestObj());
}
}
第2个回答 2012-10-04
啊,我就当做是笔试题目吧;;;;
Class OK
{
private:OK();//构造函数无法extends
public:~OK();
OK*ok;
static int num=0;//实例化次数
OK* GetNewOk()
{if(num++>3) return NULL;
if(ok==NULL)
ok=new OK();
return ok;
}
}
第4个回答 2012-10-06
public final class function{
int a;
priavate int b=3;
private function();
private List fun=new ArrayList(b);
private void newfun(){
for(int i=0;i<b;i++){
fun[i]=new function();
}
}
public function getInstance(){
Random ran=new Random();
int num=ran.nextInt(b);
return fun[num];
}
}