疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

java之Object类介绍


 

   

  1、Object类是所有java类的基类

  如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类,ex:

  public class Person{

  ~~~~~

  }

  等价于

  public class Person extends Object{

  ~~~~~

  }

  2、Object类之equals方法

  ①、Object类中定义有:

  public boolean equals(Object obj)方法。

  提供定义对象是否相等的逻辑。

  ②、Objec的equals方法 定义为:x.equals(y)当x和y是同一个对象的应用时返回true,否则返回false.

  ③、J2SDK提供的一些类,如String,Date等,重写了Object的equals()方法,调用这些类的equals方法,x.equals(y),当x和y所引用的是同一类对象且属性内容相等时(并不一定是相等的对象),返回true否则返回false.

  ④、可以根据需要在用户的自定义类型中重写equals()方法。

  public class TestEquals{

  public static void main (String args[]){

  Cat cat1 = new Cat(1,2,3);

  Cat cat2 = new Cat(1,2,3);

  System.out.println(cat1 == cat2);

  System.out.println(cat1.equals(cat2 ));

  String s1 = new String("hello");

  String s2 = new String("hello");

  System.out.println(s1 == s2);

  System.out.println(s1.equals(s2));

  }

  }

  class Cat{

  int color;

  int height,weight;

  Cat(int color , int height , int weight){

  this.color= color;

  this.height = height;

  this.weight = weight;

  }

  public boolean equals(Object obj){

  if(obj == null) return false;

  else{

  if( obj instanceof Cat){

  Cat c = (Cat)obj;

  if(c.color == this.color && c.height == this.height && c.weight ==this.weight){

  return true;

  }

  }

  }

  return false;

  }

  }

  运行结果:

  false

  true

  false

  true