学习4

今天学习了新的知识类的加载和反射,感觉理解上有点困难,调用方法调用什么的容易绕晕,私下里还是需要多多的练习啊

 获得Class对象的方式主要有以下三种:

方式一:如果一个类的实例已经得到,你可以使用

        Class c = 对象名.getClass(); 

       例:  TextField t = new TextField(); 

               Class c = t.getClass();

               Class s = c.getSuperclass(); 

方式二:如果你在编译期知道类的名字,你可以使用如下的方法                     Class c = JButton.class;  

  或者         Class c = Integer.TYPE;

 

 

方式三:如果类名在编译期不知道但是在运行期可以获得你可以使用下面的方法

             Class c = Class.forName(strg);  

反射机制中为获取以上三个部分分别提供了常用类及方法。

Filed类:提供有关类或接口的属性信息。

Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。 

Method类:提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。 

 

Filed类常用方法:

Field    getField(String name) 获得指定的公共字段

Field[]   getFields() 获得类的所有公共字段

Field     getDeclaredField(String name) 获得指定的字段

Field[]    getDeclaredFields() 获得类声明的所有字段

Constructor类常用方法:

Constructor getConstructor(Class[] params) 获得使用特殊的参数类型 的公共构造函数

Constructor[] getConstructors()

 获得类的所有公共构造函数

Constructor getDeclaredConstructor(Class[] params)

获得使用特定参数类型的构造函数(与访问级别无关)

Constructor[] getDeclaredConstructors()

获得类的所有构造函数(与访问级别无关)

Method类常用方法:

Method getMethod(String name, Class[] params)

使用特定的参数类型,获得命名的公共方法

Method[] getMethods()

获得类的所有公共方法

Method getDeclaredMethod(String name, Class[] params)使用特定的参数 类型,获得类声明的命名的方法

Method[] getDeclaredMethods()

获得类声明的所有方法

利用反射技术而进行的常用操作主要有三个:

通过Constructor创建对象

通过Method执行方法

通过Field为属性赋值取值

posted @ 2016-01-06 21:38  千行始足  阅读(141)  评论(0编辑  收藏  举报