Java中Class类工作原理详解

Java中Class类工作原理详解

ID:42770127

大小:36.00 KB

页数:8页

时间:2019-09-20

Java中Class类工作原理详解_第1页
Java中Class类工作原理详解_第2页
Java中Class类工作原理详解_第3页
Java中Class类工作原理详解_第4页
Java中Class类工作原理详解_第5页
资源描述:

《Java中Class类工作原理详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java中Class类工作原理详解.txt不要为旧的悲伤而浪费新的眼泪!现在干什么事都要有经验的,除了老婆。没有100分的另一半,只有50分的两个人。1.Class对象Class对象包含了与类相关的信息。事实上,Class对象就是用来创建类的所有的“普通”对象的。类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类,就会产生一个Class对象(恰当地说,是被保存在一个同名的.class文件中)。在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机(JVM)首先检查这

2、个类的Class对象是否已经加载。如果尚未加载,JVM就会根据类名查找.class文件,并将其载入。一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象。看下面示例。SweetShop.javapackagecom.zj.sample;classCandy{static{System.out.println("LoadingCandy");}}classGum{static{System.out.println("LoadingGum");}}classCookie{static{System

3、.out.println("LoadingCookie");}}publicclassSweetShop{publicstaticvoidmain(String[]args){System.out.println("insidemain");newCandy();System.out.println("AftercreatingCandy");try{Class.forName("com.zj.sample.Gum");}catch(ClassNotFoundExceptione){System.out.pr

4、intln("Couldn'tfindGum");}System.out.println("AfterClass.forName("Gum")");newCookie();System.out.println("AftercreatingCookie");}}结果:insidemainLoadingCandyAftercreatingCandyLoadingGumAfterClass.forName("Gum")LoadingCookieAftercreatingCookie2.获取Class实例的三种方

5、式1)利用对象调用getClass()方法获取该对象的Class实例。2)使用Class类的静态方法forName(),用类的名字获取一个Class实例。3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。3.Class.forName上面的示例中:Class.forName("com.zj.sample.Gum");这个方法是Class类(所有Class对象都属于这个类)的一个static成员。Class对象就和其它对象一

6、样,我们可以获取并操作它的引用。forName()是取得Class对象的引用的一种方法。它是用一个包含目标类的文本名的String作输入参数,返回的是一个Class对象的引用。4.类字面常量Java还提供了另一种方法来生成对Class对象的引用,即使用“类字面常量”。对上述程序来说,可以是:com.zj.sample.Gum.class;5.关键字instanceof关键字instanceof返回一个布尔值,判断是不是某个特定类型的实例。if(xinstanceofDog)((Dog)x).bark();6.

7、获取Class实例packagecom.zj.sample;classPoint{intx,y;}classClassTest{publicstaticvoidmain(String[]args){Pointpt=newPoint();Classc1=pt.getClass();System.out.println(c1.getName());try{Classc2=Class.forName("com.zj.sample.Point");System.out.println(c2.getName());}c

8、atch(Exceptione){e.printStackTrace();}Classc3=Point.class;System.out.println(c3.getName());Classc4=int.class;System.out.println(c4.getName());Classc5=Integer.TYPE;System.out.println(c5.getName());Class

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。