作者sinner0116 (sinner)
看板java
标题[问题] 继承如何使用同个instance
时间Sun Feb 28 15:05:13 2010
小弟写了一个程式如下
public class test {
private int count; //计数器用
public int addCount(){
count++;
return count;
}
public test(){
System.out.println("new test");
count=0;
}
public static void main(String[] args) {
test1 t1 = new test1();
test2 t2 = new test2();
System.out.println(t1.addCount());
System.out.println(t2.addCount());
}
}
//另外有两个class继承test
public class test1 extends test {
public test1(){
System.out.println("new test1");
}
}
public class test2 extends test{
public test2(){
System.out.println("new test2");
}
}
而最後印出的结果 :
new test
new test1
new test
new test2
1
1
可是我想要两个使用相同的计数器 也就是会印出
1
2
不知除了把count 改成 static外 有别的方法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.180.196
1F:推 MouthBoom:GOOD QUESTION 02/28 15:09
2F:推 luoqr:why not static? 02/28 15:14
3F:推 tkcn:目前这种情况我也觉得 static 就够了, 02/28 15:16
4F:→ tkcn:不过也许你想要的是 Singleton (但最後还是用了 static 呀..) 02/28 15:19
5F:→ AmosYang:有 :) 02/28 15:20
6F:→ tkcn:噢...自己提供 Counter 物件进去似乎才是你想要的? 02/28 15:20
7F:→ sinner0116:想知道有没除了使用static外其他的方法 02/28 15:25
8F:→ AmosYang:有 :) 02/28 15:27
9F:→ tkcn:你知道constructor可传参数进去吗?这样不就是share instance? 02/28 15:27
10F:推 puppy8224:static是杀小 我只知道dynamic 02/28 15:50
11F:→ sinner0116:嗯嗯 不过这样new的时候有点麻烦 02/28 15:50
12F:→ AmosYang:麻烦?那就抄起JVMTI硬上吧; Singleton is for noobs XD 02/28 16:01
13F:→ TonyQ:为什麽有static不用要找别的方法 @_@ 02/28 16:55
14F:推 qrtt1:无论用static或Counter物件,都需再考虑thread-safe 02/28 20:11