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集合部分有實際應用
