java常用API之Object

Objct

java常用API之Object_第1张图片

toString()

package myObjct;

public class myObjct {
    public static void main(String[] args) {
        Object o=new Object();

        System.out.println(o.toString());//打印结果java.lang.Object@27f674d
        


    }
}

java.lang.Object@27f674d后面的@27f674d是地址值


package myObjct;

import java.util.Scanner;

public class myObjct {
    public static void main(String[] args) {
        Object o=new Object();

        System.out.println(o.toString());//打印结果java.lang.Object@27f674d


        Student student=new Student();
        String str =student.toString();

        System.out.println(str);//myObjct.Student@48140564
        //学生类没有继承  但是Object也是所有类的父类

        //System类名
        //out 静态变量
        //System.out 获取打印对象
        //println();方法
        //参数:表示打印内容
        //逻辑
        //当我们打印一个对象是 底层会调用tostring方法 把对象变成字符串 然后再打印在控制台

        //默认情况下 object类中 tostring方法返回地址值
        //打印一个对象打印就是地址值
        //但是地址值对我们没什么意义
        //我想看到对象内部属性值 怎么办
        //重写父类Object类中的tostring方法
    }
}

结论 我们打印一个对象 想看到属性值就重写toString方法就可以了,再重写的方法中,把对象属性值进行拼接 如下

java常用API之Object_第2张图片

equals

package myObjct;

public class myEquals {
    public static void main(String[] args) {

        //比较两个对象用的


        Student s1=new Student(12,"打");
        Student s2=new Student(13,"打");

        boolean result=s1.equals(s2);
        System.out.println(result);//打印结果为false
        //如果没有重写 equals方法 默认使用object种方法比较 因为他比较的是两个对象的地址值
        //让他比较两个对象属性需要重写equals方法

        
    }
}

java常用API之Object_第3张图片

练一练

package myObjct;

public class test {
    public static void main(String[] args) {
        String s="abc";
         StringBuilder sb=new StringBuilder("abc");

        System.out.println(s.equals(sb));//false

equals方法是被s调用
所以要看String里的equals方法
字符串里的equals方法 要看传进来的是不是字符串 这里传了StringBuilder不是字符串 所以为false

 System.out.println(sb.equals(s));//false

这里的equals被StringBuilder调用的
但是StringBuilder中没有equals方法
使用的是object中的 但是object中比较的是地址值 所以false

你可能感兴趣的:(java,开发语言)