作者qrtt1 (我要越级挑战)
看板java
标题Re: [问题] 面试遇到的JAVA问题
时间Fri Nov 11 23:03:06 2011
※ 引述《wemee (我不为读者改变作风)》之铭言:
: 有一些题目 类似以下用法
: 但我完全不知道这麽用的意义是什麽
: 例如
: class Foo
: {
: {
: x = 1;
: {
: y = 2;
: }
: }
: int x, y;
: }
: 分成区块中的区块 有什麽意义吗?
: 通常不是这麽写就好了
: {
: x = 1;
: y = 2;
: }
: 难道只是要先吓吓人而已
写个小例子跑看看呗。
public class Init {
static {
System.out.println("class init.");
}
{
System.out.println("instance init. 1");
x = 1;
{
System.out.println("instance init. 2");
y = 2;
}
}
int x, y;
public Init() {
System.out.println("ctor");
}
{
System.out.println("instance init. 3");
}
public static void main(String[] args) {
new Init();
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.161.123.203
1F:推 wemee:不错 这个范例可以让新手清楚的了解程式在建构子之前还执行 11/12 10:57
2F:推 wemee:了什麽 不过x,y这两个变数 用区块中的区块会有什麽特别之处 11/12 11:02
3F:→ wemee:有没有什麽范例可显示出原例与x,y在同一区块中初始化的差别 11/12 11:05
4F:推 MICHAELSHENG:推一个 thanks 11/12 14:28
5F:→ sbrhsieh:外层的{}是instance initializer,内层{}是 local scope 11/12 21:49
6F:→ sbrhsieh:如果你两者都懂,应该不需要这样问。 11/12 21:52
7F:推 wemee:终於 发文问题 又造成沸沸扬扬之後 终於出现关键字眼了 11/13 20:10
8F:→ wemee:内层{}是为了有local scope,这个关键讲出来 问题就解决了 11/13 20:12
9F:→ wemee:原先的问题 其实只要向sbrhsieh那样 一句话就可以解释清楚了 11/13 20:16