Java中的getClass()以及getName()方法使用
getClass()及getName()方法使用
getClass
public final Class<?> getClass()
返回此 Object 的運行時類。返回的 Class 對象是由所表示類的 static synchronized 方法鎖定的對象。
Java的引用變量有兩個類型,編譯時類型和運行時類型。編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定。
public class StudentDemo { public static void main(String[] args) { Student ss = new StudentSon(1, 2); Class a = ss.getClass(); System.out.println(a.getName()); } }
getName
public String getName()
以 String 的形式返回此 Class 對象所表示的實體(類、接口、數組類、基本類型或 void)名稱。
實體:對象引用的目的地
該類運行時類型為StudentSon 編譯時類型為Student ,則ss.getClass()返回StudentSon類
運行結果:
StudentSon
關於getClass()與getName()一道題
在牛客網上看到的一道題目
package test; import java.util.Date; public class SuperTest extends Date{ private static final long serialVersionUID = 1L; private void test(){ System.out.println(super.getClass().getName()); } public static void main(String[]args){ new SuperTest().test(); } }
1.super.getClass() 是父類的getClass()方法,其父類是Date,它的getClass()方法是繼承自Object類而且沒有重寫
2.在調用getName()方法而getName()是:包名+類名
所以輸出的是:
test.SuperTest
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。