java中object类和objects

package day7.demo1;

import java.util.Objects;
/*p218-p219
*/
public class Demo1Objects_Object { public static void main(String[] args) { //========Object中得equals 和Objects.equals得区别============ String st=null; String st1="abc"; // System.out.println(st.equals(st1));//NullPointerException /*a == b比较得是地址 * public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); } * * */ System.out.println(Objects.equals(st,st1));//false //=================Object中得ToString()===================== /* * 作用:打印对象信息 *重写前:打印得是报名@地址值 * 重写后:打印属性值 * */ String sl="abc"; System.out.println("字符串对象是对Object.ToString方法重写了,直接输出对象得名字等于直接输出对象.ToString()方法"+sl);//字符串对象是对Object.ToString方法重写了,直接输出对象得名字等于直接输出对象.ToString()方法abc System.out.println("字符串对象是对Object.ToString方法重写了,直接输出对象得名字等于直接输出对象.ToString()方法"+sl.toString());//字符串对象是对Object.ToString方法重写了,直接输出对象得名字等于直接输出对象.ToString()方法abc int [] shuzu=new int[]{10,20,30}; System.out.println("数组没有对Object.ToString重写,直接输出对象得名字等于直接输出对象.ToString()方法"+shuzu);//数组没有对Object.ToString重写,直接输出对象得名字等于直接输出对象.ToString()方法[I@1540e19d System.out.println("数组没有对Object.ToString重写,直接输出对象得名字等于直接输出对象.ToString()方法"+shuzu.toString());//数组没有对Object.ToString重写,直接输出对象得名字等于直接输出对象.ToString()方法[I@1540e19d //=================Object中得equals方法===================== /* * 作用:比较两个对象 *重写前:比较两个对象得地址值 * 重写后:比较两个对象得属性值 * */ String sl1="abc"; String sl2="abc"; System.out.println("字符串得equals方法对 Object中得equals方法进行了重写,所以直接比较得是内容,内容相等则为true "+sl1.equals(sl2));//字符串得equals方法对 Object中得equals方法进行了重写,所以直接比较得是内容,内容相等则为true true Stundent stu1=new Stundent("张翰",90); Stundent stu2=new Stundent("张翰",90); System.out.println(" Stundent类重写了Object中得equals方法,所以比较属性相等则为true,如果没有重写,那么两个均为new得地址值不相等,所以为false "+stu1.equals(stu2));//Stundent类重写了Object中得equals方法,所以比较属性相等则为true,如果没有重写,那么两个均为new得地址值不相等,所以为falsetrue } }

 

posted @ 2021-05-27 17:14  程序杨%  阅读(261)  评论(0编辑  收藏  举报