• java常用API之Object


    Objct

    在这里插入图片描述

    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
            
    
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    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方法
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

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

    在这里插入图片描述

    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方法
    
            
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述

    练一练

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

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

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

  • 相关阅读:
    SpringDataJpa(三)
    Java类和对象
    session和jwt
    手把手教你搭建K8S集群
    MYSQL_精讲数据库数据类型
    Wasserstein Slim GAIN with Gradient Penalty(WSGAIN-GP)介绍及代码实现——基于生成对抗网络的缺失数据填补
    C专家编程 第5章 对链接的思考 5.1 函数库、链接和载入
    数组更新检测
    手机联系人不见了怎么恢复,试下这2招
    ubuntu下mysql常用命令
  • 原文地址:https://blog.csdn.net/nie2459010516/article/details/133377755