代码阅读1:
for(int i = 0;i<5;i++){
System.out.println("好好学习Java");
}
System.out.println(i);
思考:上面的代码有什么问题?
1.变量声明的位置决定变量的作用域。
2.变量作用域是可在程序中按变量名访问该变量的区域。
举例:在一个类的不同地方进行声明变量。
代码阅读2:
public class VarDemo {
//成员变量(全局变量)作用域为整个类
int num = 18;
String address = "邯郸市";
public void m1(){
//局部变量n,作用域为m1()方法内
int n = 25;
}
public void m2(){
//局部变量a,作用域为for循环内
for(int a = 0;a<5;a++){
System.out.println(a);
}
}
}
代码阅读3:
public class Test{
int score1 = 88;
int score2 = 98;
public void calcAvg(){
int avg = (score1+score2)/2;
}
public void showAvg(){
System.out.println("平均分为"+avg);
}
}
思考:上面的代码有什么问题?
成员变量和局部变量的区别:
·作用域不同
·局部变量的作用域仅限于定义它的方法
·成员变量的作用域在整个类内部都是可见的**
·初始值不同
·Java会给成员变量一个初始值
·Java不会给局部变量赋予初始值**
注意:
·在同一个方法中,不允许有同名局部变量
在不同方法中,可以有同名局部变量
·在同一个类中,成员变量和局部变量同名时,
局部变量具有更高的优先级
·参数也是一种变量,它是局部变量
代码阅读4:
public class Test {
public int num;
public void calc(int num,int num2){
System.out.println(num+num2);
}
public static void main(String[] args) {
Test test = new Test();
test.num = 10;
test.calc(11,3);
}
}
思考:以上代码结果是什么?为什么?
总结:
在一个java类中,图片上的公厕好比全局变量,每个房间里的人都可以使用,而每个房间的个人厕所好比局部变量,只有这个房间(方法或其他局部作用域)里的人可以使用,其他地方的人无法使用。