掌握Object 类中的 getClass() 方法的作用
认识Java 反射机制
在正常情况下,必须知道一个类的完整路径之后才可以实例化对象,但是在Java k 也允许通过一个对象来找到其所在的类的信息,那么这实际上就是 Class 类的功能。
package org.lxh.demo15.getclassdemo ;
class X{
};
public class GetClassDemo01{
public static void main(String args[]){
X x = new X() ; // 实例化X类的对象
System.out.println(x.getClass().getName()) ; // 得到对象所在的类
}
};
此时,所有的操作都是反着来的。
此类在JDK 文档中没有发现任何的构造方法,所以此类的构造就方法被私有化了。
package org.lxh.demo15.getclassdemo ;
class X{
};
public class GetClassDemo02{
public static void main(String args[]){
Class<?> c1 = null ; // 指定泛型
Class<?> c2 = null ; // 指定泛型
Class<?> c3 = null ; // 指定泛型
try{
// 以下的操作形式是在开发中最常用的一种形式
c1 = Class.forName("org.lxh.demo15.getclassdemo.X") ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
c2 = new X().getClass() ; // 通过Object类中的方法实例化
c3 = X.class ; // 通过类.class实例化
System.out.println("类名称:" + c1.getName()) ; // 得到类的名称
System.out.println("类名称:" + c2.getName()) ; // 得到类的名称
System.out.println("类名称:" + c3.getName()) ; // 得到类的名称
}
};
一旦可以实例化 Class 类之后,就可以进行反射的进一步操作。
总结:
1、了解了 Class 类的作用:反射的源头
2、三 Class 类的实例化方法,其中要以“forName()” 重点掌握, 类 .class