Java中的Object类
1.什么是Object类?有哪些常用方法?
答:1).Object类是所有类的父类,位于java.lang包中。
2).数组也是Object类的子类。
3).Object类的常用方法有:
--- toString();
--- equals();
--- hashCode();
---.....
2.如何使用Object类?举例说明
答: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);
}
}
3.Object和Object[]之间有什么区别?
答:1).方法中的形参是Object类型时,任何类型的参数都可以传进去执行。
2).方法中形参是Object[]类型时,只有对象数组可以传入执行。
例:public static void arrayTest(Object[] obj){
}
public static void main(){
Int[] array = new int[4];
arrayTest(array) //错误出现
}
4.什么是toString方法?举例说明
答: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)); //打印为true
2). “=”
比较的是内存中的虚地址
String str = new String(“123”);
String str = new String(“123”);
System.out.println(str == str1); //打印为false
6.什么是hashCode方法?
答:获取对象的哈希码值,为16进制
7.equals方法与hashCode方法之间有什么关系?
答:1).如果两个对象使用equals比较返回true,那么它们的hashCode值一定要相同
2).如果两个对象equals比较返回false,那么它们的hashCode值不一定不同
3).覆盖equals,往往需要覆盖hashCode,可以使用Eclipse自动生成,保证equals返回true,则hashCode相同;equals返回false,则hashCode不同
4).在Set集合部分有实际应用