✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
举个栗子
/**
* ClassName: AA
* date: 2022/9/2 15:25
*
* @author DingJiaxiong
*/
class AA {
public void swap(int a , int b){
System.out.println("a和b交换前的值 a = " + a + " b =" + b);
int tmp = a;
a = b;
b = tmp;
System.out.println("a和b交换后的值 a = " + a + " b =" + b);
}
}
调用类
/**
* ClassName: MethodParameter01
* date: 2022/9/2 15:40
*
* @author DingJiaxiong
*/
public class MethodParameter01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
AA obj = new AA();
obj.swap(a , b);
System.out.println("main方法中 a = " + a + " b = " + b);
}
}
运行结果

举个栗子
B 类中编写一个方法 test100,可以接收一个数组,在方法中修改该数组,看看原来的数组是否变化
/**
* ClassName: B
* date: 2022/9/2 15:44
*
* @author DingJiaxiong
*/
class B {
public void test100(int[] arr){
arr[0] = 200;
System.out.println("test100的arr数组");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
}
}
调用类
/**
* ClassName: MethodParameter02
* date: 2022/9/2 15:44
*
* @author DingJiaxiong
*/
public class MethodParameter02 {
public static void main(String[] args) {
B b = new B();
int[] arr = {1 ,2 ,3};
b.test100(arr);
System.out.println("main中的arr数组");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
}
}
运行结果

再举个栗子
B 类中编写一个方法 test200,可以接收一个 Person(name,age)对象,在方法中修改该对象属性,看看原来的对象是否变化

可以看到修改后,原来的实例对象的值变化了。
直接重新创建一个实例对象,效果如何

把p赋值为null试试

OK。
听听韩老师的讲解:
【置空时】

p = null是把test200中的p指向了“空”,与main方法中的p没有关系。
【new出新对象】
也与原先main方法中的没有关系,

懂了。
编写一个方法 copyPerson,可以复制一个 Person 对象,返回复制的对象。克隆对象
注意要求得到新对象和原来的对象是两个独立的对象,只是他们的属性相同
Person类
/**
* ClassName: Person
* date: 2022/9/2 15:11
*
* @author DingJiaxiong
*/
class Person {
String name;
int age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
/**
* ClassName: MyTools
* date: 2022/9/2 15:18
*
* @author DingJiaxiong
*/
class MyTools {
public Person copyPerson(Person p){
Person p2 = new Person();
p2.name = p.name;
p2.age = p.age;
return p2;
}
}
调用类
/**
* ClassName: MethodExercise02
* date: 2022/9/2 16:13
*
* @author DingJiaxiong
*/
public class MethodExercise02 {
public static void main(String[] args) {
Person p = new Person();
p.name = "张三";
p.age = 100;
MyTools tools = new MyTools();
Person p2 = tools.copyPerson(p);
System.out.println(p);
System.out.println(p2);
System.out.println(p == p2);
}
}
运行结果
