Java中的getClass()以及getName()方法使用

Java中的getClass()以及getName()方法使用 目录 getClass()及getName()方法使用 getClass getName 关于getClass()与getName()一道题 在牛客网上看到的一道题目 getClass()及getName()方法使用 getClass public final Class? getClass() 返回此 Object 的运行时类.返回的 Class 对象是由所表

目录
  • getClass()及getName()方法使用
    • getClass
    • getName
  • 关于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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

本文标题为:Java中的getClass()以及getName()方法使用