成员变量和局部变量的区别
成员变量
成员变量和局部变量的区别
-
在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上 -
在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存 -
生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 -
初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
1 public class MyTest2 {
2 public static void main(String[] args) {
3 Student student = new Student();
4 student.show("王五");
5 }
6 }
7 class Student {
8 // 成员变量
9 String name="张三";
10 //局部变量
11 public void show(String name) {
12 //当成员变量和局部变量重名时,那么访问变量的规则就遵从就近原则
13 //就近原则:先从局部范围找,找个变量,找到就使用,如果找不到,去成员位置找,找到就成员
14 System.out.println(name);//王五
15 System.out.println(this.name);//张三
16 }
17 }