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。

推薦閱讀: