先看这个例子
--------------------------------------------------------------
public class Variable {
// 成员变量
String name = "成员变量";
public static void main(String[] args) {
// 新建类对象
Variable variable = new Variable();
// 调用对象的方法local方法
variable.local();
}
void local() {
// 局部变量
String name = "局部变量";
// 在方法体内打印变量name
System.out.println(name);
// 用this指向对象本身.this.name,为对象(Variable类对象)
System.out.println("打印:" + this.name);
}
}
---------------------------------------------------------
再看这个例子
----------------------------------------------------
public class Variable {
// 成员变量
String name = "成员变量";
public static void main(String[] args) {
// 新建类对象
Variable variable = new Variable();
// 调用对象的方法local方法
variable.local();
variable.local2("不知道");
}
void local() {
// 局部变量
String name = "局部变量";
// 在方法体内打印变量name
System.out.println(name);
// 用this指向对象本身.this.name,为对象(Variable类对象)
System.out.println("打印:" + this.name);
}
void local2(String name) {
// 成员变量name的值,等于传进来的namn值
// 也就是方法传参,这个参数名实际上是可以随意改变的
// this同样指向了当前对象,比如main方法中实例化的variable对象
// 在这里只是改变了当前对象中name变量的值,但是并没有影响到局部变量name的值
this.name = name;
// 这里打印的name还是局部变量
//也就是方法传入的参数
System.out.println("我打印的还是局部变量的值" + name);
}
}
----------------------------------------------------------
分析一下你给的例子
----------------------------------------------
import java.io.*;
public class A {
int i = 1;
void Fun() {
int i = 0;
i = this.i;
// A q=new A();
// System.out.println(this.i);
System.out.println(i);
}
public static void main(String args[]) {
A a=new A();
a.Fun();
}
}结果为1
追问可以把全局的赋值给局部的吗
追答可以
---------------------------------------------------
郁闷刚才莫名的不显示了!
main方法是static静态方法,不可以直接写Fun();具体的就不解释了
可以让局部变量等于成员变量值
本回答被提问者采纳