回顾方法及加深之值传递和引用传递
Java都是值传递
引用传递:传递对象,本质还是值传递
一个类里面,只能有一个public class ,但是可以有多个class
代码举例
1. 值传递
//值传递和引用传递
//Java都是值传递
public class Demo04 {
public static void main(String[] args) {
System.out.println("Hello World !");
int a = 1;
System.out.println(a);
change(5);
//int a = 1;
System.out.println(a);
Demo04.change(a); //change(a);
System.out.println(a);// 结果不是10 而是1 值传递
}
//注意返回值为空
public static void change(int a) {
a = 10;
}//走完这个方法后 a=10 。但是void 表示什么都不返回,没有将a = 10 返回,所以a还是1
}
2. 引用传递
//引用传递:传递对象,本质还是值传递
public class Demo05 {
public static void main(String[] args) {
System.out.println("Hello World !");
Person person = new Person(); //实例化过程:将Person类实例化之后 ,传递给对象person,这个对象person 的类型为Person类型(属于引用类型当中的自定义类型)
System.out.println(person.name);//null 对象名.属性名 前面提到的是对象名.方法名
System.out.println(person);
change(person);
Demo05.change(person);
System.out.println(person.name);//小明
System.out.println(person.age);//
System.out.println(person); //输出的是对象的地址
}
public static void change(Person person1) {
//person是一个对象,指向的是Person类,指向的是Person person = new Person(); 这是一个具体的人,可以改变属性。
person1.name = "小明";//它修改的不是change方法里面的值, 而是Person类里面的值 ,所以是能修改成功的
person1.age = 10;
//要是此处写person = ??; 因为返回值为空,所以返回后是没有修改的。
}
}
//一个类里面,只能有一个public class ,但是可以有多个class
//定义一个Person类,有一个属性:name
class Person {
String name;//默认值null
int age = 1;
}