在java里面,所有的类都直接或者间接的继承自object类,object类是所有的类的超级父类,或者,我们
称之为顶层父类,该类提供了很多的方法,下面我们就来看看object类所提供的常见的方法.
1.getclass()方法返回当前类的实例,也就是类的全名.还是来看看代码吧.
package oop2;
import java.util.ArrayList;
public class object2 {
public static void main(String[] args) {
// java数组定义的集中方式.
// int [] a= {12,23,25,34};
// System.out.println(a.length);
// int [] a= {12,35,27,56,89};
// System.out.println(a.length);
Object[] arr=new Object[4];
arr[0]=new Object();
arr[1]=new String("hello");
arr[2]=new Integer(12);
arr[3]=new object2();
for(Object obj:arr) {
System.out.println(obj.getClass());
}
}
}
//输出结果如下
class java.lang.Object
class java.lang.String
class java.lang.Integer
class oop2.object2
从输出的结果可以看出的就是,getclass返回的就是当前的类的一个实例,只不过返回的该类所在哪一个包
下面的。返回的是在哪一个包下面的那个类.
2.toString将其改变为字符串.还是来看看代码吧,将上面的代码转换位字符串的输出,
package oop2;
import java.util.ArrayList;
public class object2 {
public static void main(String[] args) {
// java数组定义的集中方式.
// int [] a= {12,23,25,34};
// System.out.println(a.length);
// int [] a= {12,35,27,56,89};
// System.out.println(a.length);
Object[] arr=new Object[4];
arr[0]=new Object();
arr[1]=new String("hello");
arr[2]=new Integer(12);
arr[3]=new object2();
for(Object obj:arr) {
System.out.println(obj.toString());
}
}
}
//输出的结果.
java.lang.Object@7852e922
hello
12
oop2.object2@4e25154f
从上面的代码可以看出的就是第一个和最后一个由于没有重写该方法,输出的还是包的路径名+@符号,以及一个十六进制的数字。由于String,Integer重写了该方法,输出了字符串的字面值.
package oop2;
import java.util.ArrayList;
public class object2 {
public static void main(String[] args) {
// java数组定义的集中方式.
// int [] a= {12,23,25,34};
// System.out.println(a.length);
// int [] a= {12,35,27,56,89};
// System.out.println(a.length);
Object[] arr=new Object[4];
arr[0]=new Object();
arr[1]=new String("hello");
arr[2]=new Integer(12);
arr[3]=new object2();
for(Object obj:arr) {
System.out.println(obj);
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "test";
}
}
在代码的最后面,我们重写了toString方法,所以,输出的结果就会不一样了。
3.equals方法比较的就是他们两个的内存地址是否相等,并不是比较的字面值是否相等.