《Java面向对象——常用类》

 1、 Object类


        Object类是Java中所有类的父类,所以Object下的方法同时也是所有类的共有方法,
        即使是你自定义的一个类,也拥有Object的方法。
        所以需要掌握Object类下的常见方法:


        2、equals方法

            a.equals(b);//其中a和b都要是一个对象而非一个基本数据类型或一个类。
            含义:判断两个对象是否为同一个对象(内存地址是否相等,本质就是==),返回一个boolean值。
            凡是new出来的不可能是同一个对象。
            


            
        3、toString方法

            
       
        Student s1 = new Student(1, "张三", 12);
        Student s2 = new Student(1, "张三", 12);
        boolean b = s1.equals(s2);
        System.out.println(b);
        //注意上述s1和s2即使每个属性值都一样,但是依然返回false,原因就是都是new出来的。
        //注意:如果需要在某些特定场景,equals不是判断内存地址,而是判断id如何实现。
        
        


            4、常见面试题:==和equals的区别

            答案1:==如果作用于基本数据类型。就判断值是否相等。
            答案2:==如果作用于引用数据类型,就判断地址是否相等
            String str1 =  new String("你好")  ;
            String str2 =  new String("你好")  ;
            System.out.println( str1  ==  str2);//false
            System.out.println( 1  ==  1);//true
            
            String str1 = "你好";
            String str2 = "你好";
            System.out.println( str1  ==  str2);true
            意味着str1和str2的地址是一样的。
            总结:String声明变量的区别:
            String str = new String("xx");
            不管xx是什么,都要重新开辟一个新的内存。
            String str = xx ;
            如果xx存在了就不去开辟了 而是直接引用已经存在的,
            
            
            
            答案3:equals:只能作用于引用数据类型,本质就是==
            答案3:但是大部分的类都重写了equasl方法,例如String  ,Date
            答案3:重写之后的equals则是判断值是否相等 
             
            String str1 = "你好";
            String str2 = "你好";
            System.out.println( str1.equals(str2) );//true 错误的解释:因为str1和str2都是直接声明的所有地址相等
            
            String str1 =  new String("你好") ;
            String str2 = "你好";
            System.out.println( str1.equals(str2) );//true 原因:String 也重写了equals方法,是判断值是否相等
            而非地址 
        
    public static void main(String[] args) {
        
    }
    
    
    
    
}
 


            5、Object常见方法 : toString

            总结0:直接打印对象,和打印对象的.toString方法 效果是一样的 一般都是省略
            总结1:Object的toString打印:对象的内存地址,格式:  路径+ @ + 内存地址
            
            如果存在某个场合,希望打印的是具体属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值