Object

 

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

数组也是Object类的子类

Object类的常用方法

 toString();

 equals();

 hashCode();

……

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

:

    public class A{

      public void f(Object obj){ //Object类作为f方法的参数

      }    

    }

    public class Test{

      public static void main(){

         Example exam=new Example();

         int[] array=new int[4];

         ……//任何数组

         exam.f(array);

    }

    }

3ObjectObject[ ]之间的区别

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

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

 

4Object类中的常用方法

1)toString 方法

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

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

2equals方法;

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

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

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

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

    String str=new String(123);

    String str1=new String(123);

    System.out.println(str.equals(str1));à打印为true.

具体代码例子:

 

 1 //基类(父类)
 2 public class A {
 3     //声明属性
 4     String name;
 5     int num;
 6     
 7     //无参构造方法
 8     public     A() {        
 9     
10     }
11     
12     //有参构造
13     public A(String name, int num) {
14         this.name = name;
15         this.num = num;
16     }
17     
18     //父类重写Object类eaquals方法
19     //如果重写的eaquals方法传参不是Object时,就是重新创建了一个A类的eaquals方法
20     //并非对Object类的eaquals方法进行重写
21     
22     public boolean equals(Object a) {
23         
24         //强制转化为A类的对象,从而可以调用A的属性
25         A b = (A) a;        
26         if(b.name.equals(this.name) && b.num == this.num) {
27             return true;
28         }else {
29             return false;
30         }
31     }
32     
33 }

 

 

1 //B为A的子类
2 public class B extends A{    
3     
4         //B类有参构造
5         public B(String name, int num) {
6             this.name = name;
7             this.num = num;
8         }        
9 }

 

 

 1 //C为A的子类
 2 public class C extends A{    
 3         
 4         //C类有参构造
 5         public C(String name, int num) {
 6             this.name = name;
 7             this.num = num;            
 8         }        
 9 }
10         

 

 

 1 //入口函数
 2 public class Main {
 3 
 4     public static void main(String[] args) {
 5         // TODO Auto-generated method stub
 6         
 7         A a1 = new A("Kobe",24);
 8         
 9         A a2 = new A("Jordan",23);    
10         
11         A a3 = new A("Kobe",24);        
12         
13         B b1 = new B("Kobe",24);
14         
15         C c1 = new C("Kobe",24);
16         
17         
18         System.out.println(a1.equals(a2));    //false    
19         System.out.println("-------------");
20         System.out.println(a1.equals(a3));    //true
21         System.out.println("-------------");
22         System.out.println(a1.equals(b1));    //true
23         System.out.println("-------------");
24         System.out.println(a1.equals(c1));    //true
25     }
26 
27 }