JAVASE--02

Object类


* 重写Object中的方法
toString():object类中的toString()返回的字符串getClass().getName() + "@" + Integer.toHexString(hashCode())可以看成是对象的地址,在实际开发中并没有任何意义.Object定义的toString()方法的意图是将该对象以要给字符串的形式返回,但是本身Object提供的这个方法返回的字符串为这个对象的"句柄",即:对象的地址信息,实际开发中意义不大,为此,当我们需要用到一个对象的toString()方法时,就应当重写这个方法.注意,Java提供的类基本上都重写了toString()方法,只有我们自己定义的类才需要额外重写.当我们用到一个类(自己定义的类)的toString()方法时就应当重写这个方法.返回的字符串没有严格要求内容可根据将来实际开发需求而定,但是原则上返回的字符串中应当包含当前对象的属性信息.System.out.println(Object o)该方法可以将给定对象的toString()方法返回的字符串输出到控制台

equals():在Object类中该方法return (this == obj);Object定义的equals方法的意图时比较两个对象的内容是否相同,但是本身提供的equals内部就是用"=="比较的,并无实际意义.所以若希望比较内容就应当重写该方法.Java提供的类基本都已经重写过了.只有我们自定义的类需要单独重写.

public boolean equals(Object obj){
    if(obj == null){    // 1: 判断该对象是否为空
        return false;
    }
    if(obj == this){    //2:判断该对象是否就是本身
        return true;
    }
    if(obj instanceof Point){   //3:判断该对象是否是该类的实例
        Point point = (Point) obj;
        return this.x == point.x && this.y == point.y;
    }
    return false;
}

基本类型没有面向对象的特性


Number


java有八种基本数据类型(byte,char,short,int,long,float,double,boolean),但是不具备面向对象的特性,所以不能直接参与面向对象的开发,那么在实际使用上会出现很多的不便,为此Java为8种基本类型提供了对应的包装类(Byte,Character,Short,Integer,Long,Float,Double,Boolean),Number是这八种基本类型的父类,以便于让基本类型以对象形式存在并参与面向对象的开发中.

//可以通过实例化将基本类型转换为对应的包装类(不推荐使用new的方法创建,使用valueOf()创建对象)
Integer i1 = new Integer(1);
Double d1 = new Double(1.0);
Integer i2 = Integer.valueOf(1);
数字类型的包装类提供了一组方法:intValue(),doubleValue(),floatValue()...可以将当前包装类表示的数字转换为对应的基本类型.但是在进行转化时,考虑强转溢出问题.

//将包装类转化为基本类型
i1.intValue();
如何获取最大值 MAX_VALUE,MIN_VALUE

//获取最大值,最小值
int iMax = Integer.MAX_VALUE;
int iMin = Integer.MIN_VALUE;

包装类提供了一个静态方法parseXxx(String str),这个方法可以将给定的字符串转换为对应的基本类型,前提时该字符串必须正确的描述了该基本类型可以保存的值.

Integer.parseInt("999999");
Double.parseDouble("99");

自动装箱和拆箱操作
JDK1.5之后出现,编译器认可,会在编译期间自动通过valueOf()将基本类型与相对应的包装类型转换,省去我们转换的麻烦

/*
 * 触发自动装箱特性,编译器会将基本类型补全,代码转化为对应的包装类:
 * Integer i = Integer.valueOf(1);
 */
Integer i = 1;

/*
 * 触发了自动拆箱特性,编译器会将包装类补全代码.转化为对应的基本类型:
 * int i1 = i.intValue();
 */
int i1 = i;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值