总  结

一、Object类

1.1 Object类是所有类的父类,位于java.lang包中

数组也是Object类的子类

Object类的常用方法

 toString();

 equals();

 hashCode();

Object类在java.lang包下,是所有类的根。任何类的对象,都可以调用Object类中的方法,包括数组对象。

1.2 Object和Object[]之间的区别

方法中的形参是Object类型时,任何类型的参数都可以传进去执行。

方法中形参是Object[]类型时,只有对象数组可以传入执行。

例:

public  static void arrayTest(Object[] obj){
}    
public static  void main(){
   int[] array=new  int[4];
错误出现
}

二、Object类中的常用方法

1. toString方法;

方法可以将任何一个对象转换成

字符串返回,返回值的生成算法为:getClass().getName() + '@' + Integer.toHexString(hashCode())。

2. equals方法;

类中的equals方法,用来比较两个引用的虚地址。当且仅当两个引用在物理上是同一个对象时,返回值为true,否则将返回false。

任何类可以根据实际需要,覆盖toString及equals方法,实现自定义的逻辑。

public  class Zilei {
private String name = "123";// 学生姓名
    private int age;// 年龄
    public String getName() {
       return name;
    }
   public void setName(String name) {
    this.name = name;
    }
   public int getAge() {
      return age;
    }
    public void setAge(int age) {
       this.age = age;
    }
   //重写toString方法
    public String toString(){
       return"Student:"+"name="+name+",age="+age;
}
}

---------------------

类本身重写toString方法

重写Student类的toString方法后

public class Ttttttt {
public static void main(String[] args) {
Zilei stu1=new Zilei();
    stu1.setName("张三");
如果把姓名和年龄不输入,就会输出Student:name=123,age=0
    System.out.println(stu1);
}
}

打印: Student: name=张三,age=23

三、equals方法和“==”

equals方法

比较对象的虚地址,但是可以在类中被重写。

如:String类重写了,两个相同值的String对象相比较为   true;

“123”);

“123”);

à打印为true.

“==”

比较的是内存中的虚地址

“123”);

“123”);

à打印为false

四.hashCode方法

获取对象的哈希码值,为16进制

equals方法与hashCode方法关系

如果两个对象使用equals比较返回true,那么它们的hashCode值一定要相同。

如果两个对象equals比较返回false,那么它们的hashCode值不一定不同,覆盖equals,往往需要覆盖hashCode,可以使用Eclipse自动生成,保证equals返回true,则hashCode相同;equals返回false,则hashCode不同。在Set集合部分有实际应用。