Java进阶(极客)——反射机制(一)概述及Class 对象的机制与实现

来源:互联网 发布:广州程序员工资水平 编辑:程序博客网 时间:2024/06/05 09:33

概述:

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

1、Class对象概述:
     1.1Class其实就是类的类型
     1.2字符串类型就是String,整型类型就是Integer。String、Integer的类型就是Class。
2、Class对象的常用方法
     getName();//获取类的完整名称
     getDeclaredFields();//获得类中所有属性
     getDeclaredMethods();//获得类中所有方法
     getConstructors();//获得构造方法
    newInstance();//实例化对象

代码:


ClassTest:

package com.zhh.fanshe.main;import com.zhh.fanshe.domain.Book;/** *  * Class 对象的机制与实现 * */public class ClassTest {/** * @param args */public static void main(String[] args) {method03(); }/** * 第1种类的类型的获取方式 *  */private static void method01(){try {Class demo1 = Class.forName("com.zhh.fanshe.domain.Book");    System.out.println(demo1);    } catch (Exception e) {e.printStackTrace();}}/** * 第2种类的类型的获取方式 *  */private static void method02(){try {Book book= new Book();Object ob = book.getClass();System.out.println(ob);} catch (Exception e) {e.printStackTrace();}}/** * 第3种类的类型的获取方式 *  */private static void method03(){try {Class demo3=Book.class;//实际上是获取类System.out.println(demo3);Book b=(Book)demo3.newInstance();//Book类的对象System.out.println(b);demo3.getName();//获取类的完整名称demo3.getDeclaredFields();//获得类中所有属性demo3.getDeclaredMethods();//获得类中所有方法demo3.getConstructors();//获得构造方法demo3.newInstance();//实例化对象} catch (Exception e) {e.printStackTrace();}}}

Book:

package com.zhh.fanshe.domain;public class Book {    public int     id;    private String name;    private String type;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        System.out.println("getName方法被调用了");        return name;    }    public void setName(String name) {        this.name = name;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public void test(String name, int i) {        System.out.println(name);        System.out.println(i);    }}


源码下载:

http://download.csdn.net/detail/zhaihaohao1/8852965

参考视频:

http://www.jikexueyuan.com/course/530.html


0 0