方法的参数问题
数据类型的划分
- 基本数据类型
- 引用数据类型
1.1 引用数据类型作为方法参数
- 引用数据类型: 数组,类,接口,枚举
public class Demo01 {
// 程序的入口
public static void main(String[] args) {
Person p = new Person();
p.name = "abc";
System.out.println(p.name); // "abc"
change(p);
System.out.println(p.name); // "张三"
}
private static void change(Person p) {
p.name = "张三";
}
}
class Person{
String name; // name成员变量
}
- 结论:引用数据类型作为方法值传递时,传递的是地址值,形式参数的改变对实际参数有影响
1.2 基本数据类型作为方法参数传递
public class Demo02 {
public static void main(String[] args) {
int num = 100;
System.out.println("调用change方法前:" + num); // 100
change(num);
System.out.println("调用change方法后:" + num); // 100
}
private static void change(int num) {
num = 200;
}
}
- 结论:基本数据类型作为方法参数传递时,传递的是基本数据类型变量储存的具体数值,形式参数的改变对实际参数没有影响
1.3 String作为方法参数传递
public class Demo03 {
public static void main(String[] args) {
// 定义一个String类型变量
String s = "itheima";
System.out.println("s ---> " + s); // itheima
// 调用change方法
change(s) ;
System.out.println("s ----> " + s); // itheima
}
private static void change(String s) {
s = "itcast" ;
}
}
String虽然是引用数据类型,但是在将String作为方法参数传递时,是按照基本数据类型的规则进行传递的,传递的是具体的数值