Java 关于类型类、this.getClass()的理解

来源:互联网 发布:淘宝商品佣金查询 编辑:程序博客网 时间:2024/06/16 03:42
import java.io.*;import java.util.*;class test  {public static void main (String[] args) throws java.lang.Exception{        B b=new B();        Object c=b.getClass();        String d=b.getClass().getName();        System.out.println(c);//因为都有toString()所以动态绑定了        System.out.println(d);}}class A{     int x;     int y;     A()     {        // Scanner input=new Scanner(System.in);         x=10;         y=9;         //input.Close();     }     public void Add()     {         System.out.println(x+y);     }}class B extends A{    public void Add()    {        System.out.println(x*y);    }    public void TES()    {        super.Add();        this.Add();    }    }

Java语言中,每个类都有一个函数是getClass(),这个函数可以返回该保存该类型的类型类的一个实例的引用,这个类型类的实例无法直接接受但是我们可以用Object接收,

在println()的时候打印出的是Class B说明这个类型类已经将toString()函数重写,因此打印出来的是Class B。


以下是引用的部分:来源http://blog.sina.com.cn/s/blog_6f8856f30102w1bo.html


在获得类型类之后,你就可以调用其中的一些方法获得类型的信息了,主要的方法有:

getName():String:获得该类型的全称名称。

getSuperClass():Class:获得该类型的直接父类,如果该类型没有直接父类,那么返回null。

getInterfaces():Class[]:获得该类型实现的所有接口。

isArray():boolean:判断该类型是否是数组。

isEnum():boolean:判断该类型是否是枚举类型。

isInterface():boolean:判断该类型是否是接口。

isPrimitive():boolean:判断该类型是否是基本类型,即是否是int,boolean,double等等。

isAssignableFrom(Class cls):boolean:判断这个类型是否是类型cls的父(祖先)类或父(祖先)接口。

getComponentType():Class:如果该类型是一个数组,那么返回该数组的组件类型。

此外还可以进行类型转换这类的操作,主要方法有:

asSubclass(Class clazz):Class:将这个类型



原创粉丝点击