区别
局部变量在类体中,一般是最先定义的,而局部变量是在方法或各种其他语句中,而方法可以同时调用成员变量和局部变量。
作用域
局部变量的作用域仅限于定义它的方法,成员变量的作用域在整个内部都是可见的
其它
在同一个方法中,不允许有同名局部变量。
在不同方法中,允许有同名局部变量。
当局部变量和成员变量同名时,优先调用方法中的变量。
例如:
public class ScopeDemo {
int i=1;
public static void main(String[] args) {
ScopeDemo c=new ScopeDemo();
c.F();
}
public void F() {
int i=2;
System.out.println(i);
}
}
输出:2
要想调用成员变量可以用this关键字 :
public class ScopeDemo {
int i=1;
public static void main(String[] args) {
ScopeDemo c=new ScopeDemo();
c.F();
}
public void F() {
int i=2;
System.out.println(i+this.i);
}
}
输出:3