请教《Thinking in java》一道练习题

如题所述

1、main()中标志的cm.getConnection()这个不会再次打印Connection()是因为getConnection()这个定义成了static,不再初始化了吗?
第一次调用cm.getConnection()的时候,在它之前static 先执行了
static Connection[] ca = new Connection[3]; {
for(Connection x : ca)//这个表达式是什么意思?
x = Connection.makeConnection();
}
遍历了三次,也就是创建了三个Connection(),它初始化之后现在的howManyLeft当然是三了,调用System.out.println(howManyLeft)输出3 2 1
第二次调用cm.getConnection(); 现在的howManyLeft是0所以输出No more connections
同时返回空
第三次调用cm.getConnection();没有意义已经是空了,输出也是空。
输出howManyLeft当然是0了

2、此时main()中的cm.howManyLeft与howManyLeft有什么区别?
没有区别,两个其实就是一个,都一样。静态全局变量。区别在你写发不同

3、初始化数组Connection[] ca时的for循环里的条件Connection x : ca是什么意思?用法是怎样的?
1.5之后的新特性,遍历数组和集合用。

另外说句题外话,初学者不要看Thinking in java
温馨提示:答案为网友推荐,仅供参考