JAVA变量的作用域问题

发布网友 发布时间:2022-04-20 06:40

我来回答

2个回答

热心网友 时间:2023-06-27 04:58

你把System.out.println("第一个实例对象调用变量i的结果:" + t1.i++);
t1.call(); // 使用第一个对象调用类成员方法

换成
t1.call(); // 使用第一个对象调用类成员方法
System.out.println("第一个实例对象调用变量i的结果:" + t1.i++);
你就懂了,不知道是不是你想要的回答
你如果不想int i=47被覆盖可以加上final

热心网友 时间:2023-06-27 04:58

java中变量作用域其实容易记,
就是这个变量在哪一组{}中定义,它作用域就是这组{},比如在
class xxx{

int a;
public void xxx()
{
int b;
}
}
上述代码中a变量是在class的{}中定义的,它的作用域就是这个class内,任意位置都可以访问
而变量b是在方法xxx的{}中声明的,它作用域就只限于xxx方法中
在两个不同作用域范围下如果出现同名称变量时,则作用范围小的变量在其作用域内会覆盖作用范围大的变量,上述例子中如果方法中的变量和类中的变量同名,都为a,那么在方法xxx内,a变量的值以方法内声明为准追问可是for循环中并没有用int重新声明,既然i的作用域是整个类,那么我理解for循环中的i=0语句就是对之前那个i重新赋值,循环三次就是三次赋值,所以跳出循环i的值就变成3,而不是47。之前c++好像是这样

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com