Java基础 4.7
1.成员方法传参机制
引用数据类型的传参机制
引用类型传递的是地址(其实也是值,只不过值是地址),可以通过形参影响实参!
public class MethodParameter01 {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
AAA a = new AAA();
System.out.println("以下输出的是test方法中的数组");
a.test(arr);
System.out.println("以下输出的是main方法中的数组");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
class AAA {
public void test(int[] arr) {
arr[0] = 100;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
public class MethodParameter01 {
public static void main(String[] args) {
// int[] arr = {1, 2, 3};
AAA a = new AAA();
// System.out.println("以下输出的是test方法中的数组");
// a.test(arr);
// System.out.println("以下输出的是main方法中的数组");
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
Person p = new Person();
p.age = 10;
a.test2(p);
System.out.println("main p.age = " + p.age);
}
}
class AAA {
public void test(int[] arr) {
arr[0] = 100;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public void test2(Person p) {
p.age = 100;
}
}
class Person {
String name;
int age;
}
一个有趣的改动 会是你想到的结果吗?
public void test2(Person p) {
p = null;
}
再改动一下 会是你想象中的结果吗?
public void test2(Person p) {
Person p = new Person;
p.age = 99;
p.name = "logic";
}
还是10哈哈哈,我当时也想不到(●'◡'●)
方法在哪个作用域调用,就用那个调用的作用域赋予的方法值