值传递
//值传递
public class Demo06 {
public static void main(String[] args) {
int a = 1;
System.out.println(a); //a =1
Demo06.change(a); //a =1
System.out.println(a); //a =1
}
public static void change(int a){
a = 10; // a = 10
}
}
可以看到方法执行完毕后,a的值依旧为1,当a作为参数时,只是把值传给方法,其本身并未发生改变;
引用传递:对象,本质还是值传递
package base.base;
//引用传递:对象,本质还是 值传递
public class Demo07 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//null
Demo07.change(person);
System.out.println(person.name);//张三
}
public static void change(Person person){
//person是一个对象:指向的---->Person person = new Person();这个是一个具体的‘人’,可以改变属性!
person.name = "张三";
}
}
//定义一个Person类,有一个属性name
class Person{
String name;
}