对于类的传参机制我就总结两句话,仅供自己卖弄一下。对于基本数据类型,形式参数的改变不会导致实参的改变;对于引用数据类型的改变,会在堆内存中直接修改原有的值,也就是说回导致,基本值改变。 /** * @ClassName Tested 练习 * @Description TODO * @Author Administrator * @Date 2022/4/23 18:08 * @Version 1.0 */ public class Test03 { public static void main(String[] args) { /* 编写一个方法copyPerson,可以复制一个Person对象,返回复制的对象。克隆对象, 注意要求得到新对象和原来的对象是两个独立的对象,只是他们的属性相同 */ Person person = new Person(); person.name="张三"; person.age = 20; //创建tools类对象 Tools tools = new Tools(); Person p = tools.copyPerson(person); System.out.println("复制后的结果是:"+p.name+p.age); } } //创建一个Person类方便测试 class Person{ String name; int age; } //工具类 class Tools{ //方法copyPerson //返回值类型Person //方法名copyPerson //参数Person对象 //方法体参考两个基本类型数值交换的思想 public Person copyPerson(Person s){ Person person = new Person(); person.name=s.name; person.age=s.age; return person; } }
对于此题来说,如果还不知道重写toString方法的话,就要在测试类的输出语句中,将输出语句通过对象名调用属性才可以将对应属性的值输出,不然就是打印的地址。如下图