java第十章(常用类)

Object类


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

所以需要掌握Object类下的常见方法:

equals方法


a.equals(b);  其中a和b都要是一个对象而非一个基本数据类型或一个类。

含义:判断两个对象是否为同一个对象(内存地址是否相等,本质就是==),返回一个boolean值。
凡是new出来的不可能是同一个对象。

toString方法               
public static void main(String[] args) {
      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如何实现。

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

*==如果作用于基本数据类型。就判断值是否相等。
 ==如果作用于引用数据类型,就判断地址是否相等

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("xxx");
不管xxx是什么,都要重新开辟一个新的内存。
String str = xxx ;
如果xx存在了就不去开辟了 而是直接引用已经存在的,
                                
*equals:只能作用于引用数据类型,本质就是==
 但是大部分的类都重写了equasl方法,例如String,Date
 重写之后的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方法,是判断值是否相等而非地址

Object常见方法 : toString
 

总结:
直接打印对象,和打印对象的.toString方法 效果是一样的 一般都是省略
          Object的toString打印:对象的内存地址,格式:  路径+ @ + 内存地址
            
如果存在某个场合,希望打印的是具体属性信息而非地址,则可以通过重写toString方法实现。
大部分的实体类都会重写toString
//包装类如何声明变量 和String一样
        Integer a = 123;//直接声明
        Integer b = new Integer(123);//通过构造方法声明
        

包装类

包装类是专门针对于基本数据类型而言。
            由于基本数据类型没有方法或属性。
            为了更加方便对基本数据类型的值进行操作,Java提供了八大基本数据类型的包装类。
            
            boolean   byte
            char      short
            int       float
            double    long
            
            
            Boolean    Byte
            Character  Short
            Integer    Float
            Double     Long
        //包装类的用途:
        //1.作为实体类属性的数据类型,替换基本数据类型。
        //以前的写法 见下方的Student类
        Student s = new Student(123, "张三", 18,18);
        Student s1 = new Student();
        System.out.println(s);
        System.out.println(s1);
        
        //缺点:基本数据类型的默认值为0   而引用数据类型的默认值为null
        
        //2.将字符串转为对应的基本数据类型
        String str = "123445";
        int i = Integer.parseInt(str);
        System.out.println(i);    
        double d = Double.parseDouble(str);
        
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值