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);
}
列印: [email protected];
例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集合部分有實際應用