在一个方法中自定义参数则,栈内存,堆内存保存的是参数的,调用完成后自动销毁
无参数的方法调用成员变量时,会改变成员变量的栈内存,堆内存,如果方法中重新开辟则他的变量名是方法的而不是成员变量的
无参数的方法,重新开辟
public class Test {
String b;
int a;
//无参数
public void add() {
//重新开辟栈堆内存,他与成员变量无关,方法结束后销毁
int a=3;
String b="aa";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
t.add();
System.out.println(t.a+" "+t.b);
}
}
0 null
无参数的方法
public class Test {
String b;
int a;
//无参数
public void add() {
//调用方法时,改变成员变量的引用
a++;
b="hello";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
t.add();
System.out.println(t.a+" "+t.b);
}
}
1 hello
方法中自定义参数则,栈内存,堆内存保存的是参数的,调用完成后自动销毁
public class Test {
String b;
int a;
//无参数
public void add(int a,String b) {
//调用方法时,改变成员变量的引用
a++;
b="hello";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
int a=1;
String b="java";
t.add(a,b);
System.out.println(a+" "+b);
System.out.println(t.a+" "+t.b);
}
}
1 java
0 null
当方法的形式参数是类时:看指定的对象,若为本身则改变值
public class a {
String b;
int a;
//无参数
public void add(a a) {
//调用方法时,改变成员变量的引用
b="hello";
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
a a=new a();
a.setB("你好");
System.out.println(a.getB());
a.add(a);
System.out.println(a.getB());
}
你好
hello