java学习一段时间之后,大家可能经常会听到反射这个词,那么说明java已经学习到一个高一点的层次了。接下来我会一步步和大家一起揭开java高级特性反射的神秘面纱。
首先介绍下类对象这个概念,可能会经常用到这个概念:
类对象:java中有句很经典的话"万事万物皆对象",相信大家都不陌生,这句话告诉了我们java的特征之一,那就是面向对象。java中类的概念我们都很熟悉,既然万事万物皆是对象,那么类是谁的对象呢?<对象的概念:一个类的实例>换句话说,类是谁的实例。如此就有了类对象这个概念。在java中有个类的名字叫Class,任何一个类都是这个Class类的对象。
下面用几行代码向大家展示如何获取类对象:
1.新建一个包com.cx.bean,在包下创建一个类Book
Book.java文件
package com.cx.bean; public class Book { private int id; private String name; private String type; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
1.新建一个包com.cx.main,在包下创建一个类Test.
Test.java文件
package com.cx.main;
import com.cx.bean.Book; public class Test { public static void main(String[] args) { Class c1=null; Class c2=null; Class c3=null; /** * 获取类对象:类对象本身就是一个类 */ //第一种方式:通过Class对象的静态forName()方法参数为完整类路径名称 try { c1 = Class.forName("com.cx.bean.Book"); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println("第一种:"+c1);//:class com.cx.bean.Book //第二种方式:通过该类实例的getClass()方法获取类对象 Book bo=new Book(); Object ob=bo; System.out.println("第二种:"+ob.getClass()); //第三种:类名.class c3=Book.class; System.out.println("第三种:"+c3); } }
/**
运行结果:
第一种:class com.cx.bean.Book
第二种:class com.cx.bean.Book
第三种:class com.cx.bean.Book
通过这段代码可以清楚的向大家展示如何获取一个类对象.
*/