Object类
Object类
·Object类是所有类的父类,位于java。Lang包中;
·数组也是Object类的子类;
·Object类的常用方法
—toString( );
—equals( );
—hashCode( );
—......
·Object类在java.lang包下,是所有类的根。任何类的对象,都可以调用Object类中的方法,包括数组对象。
例如:
public class Example{
public void f(Object obj){
}
}
public class Test{
public static void main(){
Example exam=new Example();
int[] array=new int[4];
……//任何数组
exam.f(array);
}
}
·Object和Object[ ]之间的区别
—方法中的形参是Object类型时,任何类型的参数都可以传进去执行;
—方法中的形参是Object[ ]时,只有对象数组可以传入执行。
例如:
例:
public static void arrayTest(Object[] obj){
}
public static void main(){
int[] array=new int[4];
arrayTest(array) //错误
}
Object类中的常用方法
·toString方法;
toString方法可以将热播和一个对象转换成字符串返回,返回值的生成算法为:getClass( ).getName( ) + ‘@’ + Integer.toHexString( hashCode( ) );
·equals方法;
Object类中的equals方法,用来比较两个引用的虚地址。当且仅当两个引用在物理上是同一个对象时,返回值为true,否则将返回false。
任何类可以根据实际需要,覆盖toString及equals方法,实现自定义的逻辑。
·toString方法的重写
public class Student {
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方法
}
equals方法和“= =”
·equals方法
比较对象的虚地址,但是可以在类中被重写。
例如:String类重写了,两个值相同的String对象相比较为true;
String str = new String( “123” );
String str1 = new String( “123” );
System.out.println( str.equals( str1 ) );
·“= =”
比较的是内存中的虚地址
String str = new String( “123” );
String str1 = new String( “123” );
System.out.println( str = = str1 );
hashCode方法
·hashCode方法
—获取对象的哈希码值,为16进制;
·equals方法与hashCode方法的关系
—如果两个对象使用equals比较返回true,那么它们的hashCode值一定要相同;
—如果两个对象equals比较返回false,那么它们
的hashCode值不一定不同;
—覆盖equals,往往需要覆盖hashCode,可以使用eclipse自动生成,保证equals返回true,则hashCode相同;equals返回false,则hashCode不同;
—在Set集合部分有实际应用。