Class(常叫做大class)它是类中的类,通过个类可以取类中的相关信息,为什么要取类中的信息呢?目的就是用取的信息做想做的事,假设我们不知道什么时候用一个或一些类,我们当然希望当用到自动用到,不用的时候自动不用 可能这话有点难以理解。什么叫用到的时候自动用到,难道你不知道什么用为什么写一个类呢?因为是我们希望让框架帮我们托管我们的代码,而不是手动创建,这就是动态创建而非用程序写死。
讲了太多,我们做个实例加深一下印象。
声明一个类,并把一个成员变量为公用变量与私有变量
public String name;//姓名 这里声明为公有成员
private int age;//年纪 这里的是私有成员
声明一个公有方法与私有方法
public void test(){
System.out.println("----公用方法测试-------");
}
private void test2(){
System.out.println("-------这是一个私有方法测试-------");
}
private void test3(String str){
System.out.println("-------这是一个有参私有方法测试-------");
}
我们做一下测试
//通过大Class 可以取Stu类中 public 中成员变量 name的类关声明
Class classstu=Stu.class; //声明一个Class 类 去接收Stu类
System.out.println(classstu.getField("name"));//获取公用成员变量信息
//------获取成功
System.out.println(classstu.getField("age"));//获取私有成员时
//-------获取失败
从上面的示例能看出通过这上面方法获取 私有成员时会出错。那么如何我想获取怎么办呢?使用下面方法
System.out.println(classstu.getDeclaredField("age"));//获取私有成员时
//-------获取成功
同样我们想获取公用方法与私有方法正确的方式如下
//通过大Class 可以取Stu类中 public 中成员方法
Class classstu=Stu.class; //声明一个Class 类 去接收Stu类
//------获取公用方法(无参)
System.out.println(classstu.getMethod("test"));
//-------获取私有无参方法
System.out.println(classstu.getDeclaredMethod("test2"));
//-------获取私有方法(有参数)
System.out.println(classstu.getDeclaredMethod("test3",String.class));
同样也能处理构造方法
//通过大Class 可以取Stu类中 public 调用构造方法
Stu s1=Stu.class.newInstance();
s1.setName("test");
s1.setAge(15);
System.out.println(s1.toString());
好了,介绍到这里,也可以参考 我前面写的关于动态代理的相关文章。