成员变量与局部变量的区别
-
什么是局部变量、什么是成员变量:
-
局部变量:在方法内部的变量
-
形参:在方法签名中定义的变量。
-
方法局部变量:在方法内部定义的变量。
-
代码块局部变量:在代码块内定义的变量。
-
-
成员变量:定义在类里的变量
-
实例变量:不用 static 修饰的变量。
-
类变量:static 修饰的变量。
-
-
代码:
/** * @Author: YiHua Lee * @Version: jdk1.8.0_221.jdk, x86_64: "Java SE 8" * @Application: IntelliJ IDEA * @CreateTime: 2019/11/11 9:17 上午 * @Package: PACKAGE_NAME * @Description: */ public class ValueDifference { String name; // 实例变量 static int id; // 类变量 public ValueDifference(int id1, String name1) { this.name = name1; id = id1; } public void value1(int number) { int age; // 方法局部变量 for (int i = 0; i < number; i++) { System.out.println("i 代码块局部变量"); } } public static void value2() { String gender; // 方法局部变量 } }
-
-
定义位置不同:
-
局部变量:在方法内部。
-
成员变量:在方法的外部,直接写在类当中的变量。
-
代码理解:
/** * @Author: YiHua Lee */ public class ValueDifference { String name; // 成员变量 public void value() { int id; // 局部变量 } }
-
注意:什么是局部变量、什么是成员变量
-
-
作用范围不同:
-
局部变量:只有在方法中才可以使用,如果出了方法,就不可以再用了。
-
成员变量:整个类中都是可以使用的。
-
代码理解:
/** * @Author: YiHua Lee */ public class ValueDifference { String name; // 成员变量 public void value1() { int id1; // 局部变量 System.out.println(id2); } public void value2() { int id2; // 局部变量 System.out.println(id1); } }
注意:什么是局部变量、什么是成员变量
-
-
-
默认值不同:
-
局部变量:没有默认值,假如想使用,一定要手动进行赋值。
-
成员变量:如果没有赋值,会有默认值。
-
代码理解:
/** * @Author: YiHua Lee */ public class ValueDifference { String name; // 成员变量 public void value1() { int id1; // 局部变量 System.out.println(id1); System.out.println(name); } public void value2() { int id2 = 2; // 局部变量 System.out.println(id2); System.out.println(name); } }
注意:什么是局部变量、什么是成员变量
-