Object
Object是Java中的顶级父类,所有的类都直接或间接的继承于Object类
Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法
//1.toString 返回对象的字符串表示形式
Object obj = new Object();
String str1 = obj.toString();
System.out.println(str1);
细节:1.System:类名 2.out:静态变量 3.System.out:获取打印的对象 println():方法
//参数:表示打印内容
//核心逻辑:
//当我们打印一个对象的时候,底层会调用对象的toString方法,把对象变成字符串,然后打印在控制台上,打印完毕换行处理。
toString的方法结论
1.如果我们打印一个对象,想要看到属性值的话,那么就重写toString方法就可以了
2.在重写的方法中,把对象的属性值进行拼接
equals结论
1.如果没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等
2.一般来讲地址值对于我们意义不大,所以我们会重写,重写之后比较多 就是对象内部的属性值了
clone
把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制
在成员方法里面需要重写clone方法
然后在上方定义一个空接口
克隆对象:
1.方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去,
书写细节:
1.重写Object中的clone方法
2.让JavaBean类实现Clone able接口
3.创建原对象并调用clone就可以了
浅克隆:不管对象内部的属性是基本类型还是引用类型,都完全拷贝过来
深克隆:1.基本数据类拷贝过来 2.字符串复用 3.引用数据类型会重新创建新的
Objects
Objects是一个工具类,提供了一些方法去完成功能
boolean restult = Objects.equals(s1,s2);
System.out.println(result);//false
细节:
1.方法的底层会判断s1是否为null,如果为null,直接返回false
2.如果s1不为null,那就利用s1再次调用equals方法
3.此时的s1是Student类型,所以最终还是会调用Student中的equals方法
如果没有重写,比较地址值,如果重写了,就比较属性值