您的位置:首页 > 编程语言 > Java开发

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

2017-05-30 20:22 501 查看
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:将这个类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: