这个问题我原来一直在用我也知道可以这样用,但是昨天突然意识到,我很不理解,希望能帮我解释清楚
1.变量都有自己的作用域,在一个作用域内一个变量只能声明一次,这句话没错吧?如果有错,请说明理由,我感觉是没错的。
就像
void method() {
int i = 0;
{
int i = 4;//这样是错误的,因为会重复声明。
}
}
但是,下面这里面就可以
class Person {
int age ;
void eat() {
int age = 20;//这样就是可以的,程序不会报错
}
}
问题,在同一个作用域里面对一个变量只能声明一次,但是在Perosn类中对于成员变量中的int age,他的作用域是在Person类这个大括号中,这个大括号报错了eat方法中的小括号,为什么在eat方法中还可以再声明 int age = 20;
我知道成员变量存储在堆内存中,而局部变量存数在栈内存中,但是我就是不明白为什么在person类中的就可以在一个大括号内对一个变量声明两次,不是一个大括号内只能声明一次吗,麻烦帮忙给我解释解释,我晕了...........
|