答:1).Object类是所有类的父类,位于java.lang包中。 2).数组也是Object类的子类。 3).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); } }
答:1.方法中的形参是Object类型时,任何类型的参数都可以传进去执行。 2.方法中形参是Object[]类型时,只有对象数组可以传入执行。
例: public static void arrayTest(Object[] obj){ } public static void main(){ Int[] array = new int[4]; arrayTest(array) //错误出现 }答:toString方法可以将任何一个对象转换成字符串返回,返回值的生成算法为:getClass().getName() + ‘@’ + Integer. toHexString(hashCode())。 例1):打印对象时直接调用类的toString方法
public static void main(){ Student stu1 = new Student(); stu1.setName(“张三”); stu1.setAge(23); System.out.println(stu1); System.out.println(stu1); }打印: Student@152b6651; 例2).类本身重写toString方法重写Student类的toString方法后
public static void main(){ Student stu1 = new Student(); stu1.setName(“张三”); Stu1.setAge(23); System.out.println(stu1); }打印:Student:name = 张三,age = 23; 例3).
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; } public String toString(){ Return “Student:” + “name=” + name + “,age=” + age; } }5.如何使用equals方法和 “= =” ? 举例说明 答:1).equals方法 比较对象的虚地址,但是可以在类中被重写。 例:String类重写了,两个相同值的String对象相比较为 true;
String str = new String(“123”); String str = new String(“123”); System.out.println(str.equals(str1)); //打印为true2." =" 比较的是内存中的遗址。
String str = new String(“123”); String str = new String(“123”); System.out.println(str = = str1); //打印为false答:获取对象的哈希码值,为16进制
答:1).如果两个对象使用equals比较返回true,那么它们的hashCode值一定要相同 2).如果两个对象equals比较返回false,那么它们的hashCode值不一定不同 3).覆盖equals,往往需要覆盖hashCode,可以使用Eclipse自动生成,保证equals返回true,则hashCode相同;equals返回false,则hashCode不同 4).在Set集合部分有实际应用