Object和包装类

目录

一、Object

1.Object

2.toString方法

语法

返回值

实例

3.equals

二、包装类


 

  • 一、Object

1.Object

在java继承结构中,java.lang.Object类位于顶端

如果定义一个java类时没有使用extends关键字声明父类,则其父类默认为java.lang.Object类

Object类型的引用变量可以指向任何类型对象

package object;

/**

 * Object  对象。东西

 *

 * Object 是所有类的超类

 *

 * 使用当前point测试Object 中经常被派生类中写的方法

 * @author JaneLee

 *

 */

public class Point {

 private int x;

 private int y;

 public Point(int x, int y) {

  super();

  this.x = x;

  this.y = y;

 }



 public int getX() {

  return x;

 }

 public void setX(int x) {

  this.x = x;

 }

 public int getY() {

  return y;

 }

 public void setY(int y) {

  this.y = y;

 }



 @Override

 public String toString() {

  return "Point [x=" + x + ", y=" + y + "]";

 }



 @Override

 public int hashCode() {

  final int prime = 31;

  int result = 1;

  result = prime * result + x;

  result = prime * result + y;

  return result;

 }



 @Override

 public boolean equals(Object obj) {

  if (this == obj)

   return true;

  if (obj == null)

   return false;

  if (getClass() != obj.getClass())

   return false;

  Point other = (Point) obj;

  if (x != other.x)

   return false;

  if (y != other.y)

   return false;

  return true;

 }

}

package object;

/**

 * 测试Point中重写的Object中的方法

 * @author JaneLee

 *

 */

public class TsetPoint {

 public static void main(String[] args) {

  /*

   * Object 中常被我们重写的第一个方法是:toString

   * 这个方法的意思是将当前对象转换为一个字符串

   * Object默认实现时返回的字符串格式是:类名@地址

   *

   */

  Point p = new Point (1,2);

  //我们自定义的类不重写则输出通常没有价值

  System.out.println(p);

 

  String str = "hello";

  /*

   * system.out.println(Object o)

   * 我们经常将一个对象输出到控制台看他的内容,但是

   * 这个方法实际上是将该对象toString方法的返回值

   * 输出到控制台,java提供的类如String,StriingBuilder

   * 等都重写了这个方法

   */

  System.out.println(str);

 

  /*

   * 在连接字符串时,非string的类型都会隐式调用toString

   *

   *方法转换文字符串后在连接

   */

  String line = "这个p的内容是:"+p;

  System.out.println(line);

 

  Point  p2 = new Point (1,2);

  System.out.println(p2);


  System.out.println(p == p2);//false

  /*

   * equals方法的意义是比较两个对象的内容是否相同

   * Object定义时实现的规则就是用==比较的,所以

   * 实际上没有价值,如果正是比较内容就需要子类去重写这个方法

   * 注:java提供的类大多都重写了equals。比如

   * 最常见的String类就重写了equals用于比较字符串的内容

   */

  System.out.println(p.equals(p2));//true

 }

}

2.toString方法

toString() 方法用于返回以一个字符串表示的 Number 对象值。

如果方法使用了原生的数据类型作为参数,返回原生数据类型的 String 对象值。

如果方法有两个参数, 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。

语法

String 类为例,该方法有以下几种语法格式:

String toString()

static String toString(int i)

 

返回值

  • toString(): 返回表示 Integer 值的 String 对象。
  • toString(int i): 返回表示指定 int String 对象。

实例

public class Test{
    public static void main(String args[]){
        Integer x = 5;

        System.out.println(x.toString());  
        System.out.println(Integer.toString(12)); 
    }
}

 

3.equals

equals() 方法用于判断 Number 对象与方法的参数内容是否相等。

==”比较两个引用变量地址信息是否一致

二、包装类

package integer;



/**

 * 包装类

 * 包装类的出现是为了解决基本类型不能直接参与面向对象开发的问题

 * 因为他们是以值的形式存在,不具备封装,继承,多态的特性

 * @author Administrator

 *

 */



public class IntegerDemo1 {

 public static void main(String[] args) {

  //基本类型如何变成对应的包装类

  int d= 123;

//  Integer i1 = new Integer (d);

//  Integer i2 = new Integer (d);

  //java推荐我们用valueof形式将基本类型转换为包装类

  Integer i1 = Integer.valueOf(d);

  Integer i2 = Integer.valueOf(d);

  //Integer的valueof会重用一部分对象(-128-127)

  System.out.println(i1 == i2);

  System.out.println(i1.equals(i2));

 

  double dou =123.123;

  Double d1 =Double.valueOf(dou);

  Double d2 = Double.valueOf(dou);

  //Double的valueOf方法不做任何重用都是直接new

  System.out.println(d1 == d2);

  System.out.println(d1.equals(d2));

 

  double doub = d1.doubleValue();

  System.out.println(doub);

  int in = d1.intValue();

  System.out.println(in);

 }

}

 

package integer;

/**

 * 包装类中比较常见的操作

 * @author Administrator

 *

 */

public class IntegerDemo2 {

 public static void main(String[] args) {

  /*

   * 包装类可以将字符串解析为基本类型,但是前提是该字符串内容

   * 正确描述了基本数据类型可以保存的值,否则会抛出下面异常

   * NumberFormatException

   */

 

  String line ="123.123";

  String line1 = "123";

//  int i = Integer.parseInt(line);//NumberFormatException数字格式异常

//  System.out.println(i);

  int i = Integer.parseInt(line1);

  System.out.println(i);

  double d = Double.parseDouble(line);

  System.out.println(d);

 }

}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Healer_小振

感谢大佬的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值