初始值 | 作用域 | 优先级 | |
成员变量 | java会给成员变量一个初始值 | 受访问控制修饰符影响作用域不同 | 成员变量与局部变量同名时,优先使用局部变量 |
局部变量 | java不会给局部变量赋初始值 | 方法内,代码块作用域 |
初始值比较:
1 public class Var { 2 private static int var1;// 成员变量 3 4 public void method() { 5 int var2;// 局部变量 6 System.out.println(var1);// 编译通过,成员变量初始值 7 // System.out.println(var2); 8 //无法通过编译,局部变量没有给定值需要赋值才能调用 9 } 10 }
初始值比较
作用域比较:访问控制修饰符详解
1 public class Var { 2 private static int var1;// 成员变量,作用域受访问控制修饰符影响 3 4 public void method1() { 5 int m = 0;// m的作用域为method1这个方法中 6 for (int i = 0; i < 10; i++) { 7 // i的作用域为for循环代码块中 8 System.out.println(m + " " + i);// 编译通过 9 } 10 // System.out.println(m + " " + i); 11 // 不能通过编译,超出i的 作用域 12 } 13 }
作用域比较
优先级比较:
1 public class Var { 2 private static int var; 3 public Var(int var) { 4 System.out.println(var); 5 // 输出的值为参数var的值而不是成员变量var 6 // 调用成员变量使用this关键字 7 this.var = var; 8 } 9 }
优先级比较
时间: 2024-11-07 17:53:29