大括号括起来的语句怎么执行出这样的结果?

就是下面这个小程序,1.为什么给staticint赋值时要用{}括起来,否则报错,(我也知道要在声明时就赋值,呵呵),括起来代表什么意思?2.为什么运行Example的时... 就是下面这个小程序,
1.为什么给static int赋值时要用{}括起来,否则报错,(我也知道要在声明时就赋值,呵呵),括起来代表什么意思?
2.为什么运行Example的时候输出三个数都是11?
.........................................................
##Person.java
public class Person{
private static int staNum;

//这一句为什么不加{}的话会报错:需要 <标识符>
{staNum=10;}

public Person(){
staNum++;
System.out.println(getStaNum());
}
public int getStaNum(){
return(staNum);
}
}
..........................................................

..........................................................
###Example.java

public class Example{
public static void main(String[] args){
Person person=new Person();
Person p1=new Person();
Person p2=new Person();
}
}
............................................................
这个...汗...2楼的写错了,类名是Person,或者是我没理解你的意思。2楼的高手能说清楚些吗?static{}是什么?不加static的{}算什么?

楼下3楼的hxc198139朋友,结果是11,不是1,说明{staNum=10;}还是有用的。
不过你说的 在方法外类内,不能有除声明外的可执行语句。我突然想到是不是{}括起来就是可执行了?明显是每次初始化都运行了一遍赋值,...真的晕了,不明白类内的{}到底是什么意思。

所以问题1还是没有答案,编译器是怎么理解{}的?
希望懂行的朋友来说说
展开
 我来答
sokoo108
2008-03-20 · TA获得超过470个赞
知道小有建树答主
回答量:481
采纳率:0%
帮助的人:379万
展开全部
public class People {
private static int staNum = 10;

// 这一句为什么不加{}的话会报错:需要 <标识符>
//{staNum = 10;}

public void Person() {
staNum++;
System.out.println(getStaNum());
}

public int getStaNum() {
return (staNum);
}
}

有2个错误:
1、变量不能在方法外赋值,但可以在定义的时候设置初值;
2、Person不是People类的构造函数,所以必需有修饰符修饰该类。

PS补充:
如果非在定义静态变量的时候不设置初值,在方法外也可以使用{}来设置,如你遇到的问题只能用{}修饰staNum=10;
其实{}的全写形势为:
Static{
。。。
}
hxc198139
2008-03-20 · TA获得超过254个赞
知道小有建树答主
回答量:662
采纳率:22%
帮助的人:177万
展开全部
1、在方法外类内,不能有除声明外的可执行语句。要么声明时赋值(不赋默认为0),要么在方法内赋值。
2、你的两段代码不在同一程序界面中,运行Example时调用了三次Person的构造方法stuNum初始值为0,又有staNum++; 所以三个1。
3、{staNum=10;} 这句没用,可以删了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最疼我家小穎
2008-03-20 · 超过25用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:86.5万
展开全部
那是结构体的写法吧。。。。
只有一个值,何必又用结构体呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式