Java语言基础:RTTI

原创 2011年03月28日 23:51:00

 

1.  每个类都有一个Class对象,当我们在运行期第一次生成类的实例时,JVM就加载这个类的Class对象,然后用这个Class对象来创建类实例;Class类似于Delphi中的引用类TClass,用于保存类的运行时信息。
 
2.  Class的static方法forName()用于查找某个类的Class对象,如果forName找不到你要的类的Class对象,会抛出ClassNotFoundException异常:
 
3.  查找类的Class对象的另一个方法是直接调用类.class,这会在编译期就检查是否正确,因此不需要捕获异常:
 
4.  判断两个对象是否属于同一个类,可以通过比较他们的class的方式,通过对象的getClass()方法可以得Class对象:
 
5.  要判断对象是否继承或属于某个类,可以通过两个方法:1是使用instanceof关键字,2是使用Class.isInstance方法:
 
6.  Class.NewInstance可以创建一个类实例,该类必须有默认构造函数,否则会抛出InstantiationException异常:
 
7.  Class还提供了一些更强大的方法,可以得到类的更多信息,比如:getSuperclass: 取得父类的Class对象;getInterfaces: 取得实现的接口数组;还有其他很多方法,详见JavaDoc。

 

相关文章推荐

黑马程序员——Java语言基础——06.集合框架(3)util包中的工具类和新特性

------- android培训、java培训、期待与您交流! ---------- 本节考点: 一、Collection 和 Collections的区别 二、Collectio...

java语言基础入门——反射机制实例

1、什么是反射呢?反射可以理解为在程序运行时获取对象类型信息的操作。它允许动态的发现和绑定类、方法、字段,甚至由其他语言产生的元素。运用反射可以做到列举对象所对应的类的详细信息,如访问修饰符,包名,类...

黑马程序员----Java语言基础2(语句、函数、数组)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-程序流程控制 判断结构 、选择结构、循环结构判断结构 if语句 三种格式: 1、if(条件表达式)...

【JAVA语言程序设计基础篇】--图形-- 绘制封装表格类的思考

开始用的方法没有体现类的封装性 没有类的普遍性 package chapter15; import java.awt.*; import javax.swing.*; @SuppressWar...

黑马程序员——Java语言基础(下)

内容提要: 模板设计模式 接口 面向对象特征三之多态 两个常用类:Object类和Class类 内部类 ...

黑马程序员——java语言基础部分——集合体系之Collection、Map

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 概要      Collection接口:Collection 层次结构 中的根接口.   ...

Java语言程序设计(基础篇)- 笔记(持续更新中)

用方法传递对象参数 给方法传递一个对象,是将对象的引用传递给方法。 Java只有一种参数传递方式:值传递(pass-by-value) 当传递基本数据类型参数时,传递的是实参的值,不会改变原始的值; ...

JAVA语言基础学习第三天

###03.01_Java语言基础(逻辑运算符的基本用法)(掌握) * A:逻辑运算符有哪些     * &,|,^,!     * &&,|| * B:案例演示 * 逻辑运算符的基本用法...

java语言程序设计基础篇第八章编程练习题

1 import java.util.Scanner; public class Main{ public static void main(String[] args){ final int...

Java语言基础:多线程

1.  有两种方法可以创建并运行一个线程:继承Thread类并覆盖Run方法,Run中的代码就在另一个线程执行。class MyThread extends Thread { MyThrea...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言基础:RTTI
举报原因:
原因补充:

(最多只允许输入30个字)