16---java反射机制01(认识Class)
2012-03-02 09:29
295 查看
Class类:
正常情况下,必须知道一个类的完整路径之后才可以实例化一个对象;
但是在java中也允许通过一个对象来找到其所在的类的信息,那么这实际上就是Class类的功能;
class Demo01{
}
public class Demo{
public static void main(String args[]){
Demo01 d=new Demo01();
System.out.println(d.getClass().getName());
}
}
上面d.getClass().getName()---》通过对象去找类;
Object类的支持:
在Object类中定义了以下的方法,此方法将被所有子类继承:
public final Class getClass()
以上的方法返回值得类型是一个"Class"类,实际Class类是java反射的源头;
所谓的反射就是通过对象反射求出类的名称;
正常方式:引入所需的"包.类"名称---》通过new实例化---》取得实例化对象;
反射方式:实例化对象----》getClass()方法---》得到完整的"包.类"名称(getName());
Class 类的构造方法私有化了,要想创建对象我们可以通过Class类的静态方法
newInstance()来创建一个新的对象;
class Demo01{
}
public class Demo{
public static void main(String args[]){
Class<?> c1=null;
Class<?> c2=null;
Class<?> c3=null;
try{
//一下的操作形式是在开发中最常用的一种形式
c1=Class.forName("Demo01");//返回的是一个Class对象的引用;
}
catch(Exception e){
}
c2=new Demo01().getClass();//通过Object类中的方法实例化
c3=Demo01.class;//通过类.class实例化
System.out.println("类名称:"+c1.getName());//得到类名称;
System.out.println("类名称:"+c2.getName());//得到类名称;
System.out.println("类名称:"+c3.getName());//得到类名称;
}
}
正常情况下,必须知道一个类的完整路径之后才可以实例化一个对象;
但是在java中也允许通过一个对象来找到其所在的类的信息,那么这实际上就是Class类的功能;
class Demo01{
}
public class Demo{
public static void main(String args[]){
Demo01 d=new Demo01();
System.out.println(d.getClass().getName());
}
}
上面d.getClass().getName()---》通过对象去找类;
Object类的支持:
在Object类中定义了以下的方法,此方法将被所有子类继承:
public final Class getClass()
以上的方法返回值得类型是一个"Class"类,实际Class类是java反射的源头;
所谓的反射就是通过对象反射求出类的名称;
正常方式:引入所需的"包.类"名称---》通过new实例化---》取得实例化对象;
反射方式:实例化对象----》getClass()方法---》得到完整的"包.类"名称(getName());
Class 类的构造方法私有化了,要想创建对象我们可以通过Class类的静态方法
newInstance()来创建一个新的对象;
class Demo01{
}
public class Demo{
public static void main(String args[]){
Class<?> c1=null;
Class<?> c2=null;
Class<?> c3=null;
try{
//一下的操作形式是在开发中最常用的一种形式
c1=Class.forName("Demo01");//返回的是一个Class对象的引用;
}
catch(Exception e){
}
c2=new Demo01().getClass();//通过Object类中的方法实例化
c3=Demo01.class;//通过类.class实例化
System.out.println("类名称:"+c1.getName());//得到类名称;
System.out.println("类名称:"+c2.getName());//得到类名称;
System.out.println("类名称:"+c3.getName());//得到类名称;
}
}
相关文章推荐
- 从头认识设计模式-策略模式-01-原始应用场景
- Java反射机制getClass()函数
- Java反射机制(创建Class对象的三种方式)
- [16-1-01]大型网站架构演化
- 从头认识java-12.2 Class对象(3)-.class
- jQuery 入门教程(16): 设置或取得元素的CSS class
- java反射机制初步认识<三>注解(Annotation)的使用
- 一个ModBus RTU程序(支持01、02、03、05、06、15、16功能码)
- IOS开发教程-01-IOS程序框架认识、XCode基础了解、MVC面向对象设计
- Java反射机制 Object 与 Class 的关系 以及static方法与非静态方法的关系
- 16-01-15 RelativeLayout 属性
- 16-01-17 LinearLayout 属性 及示例
- Struts2 01.初步认识
- class_01:基本选择器|zend实验室jquery系列教程
- jQuery 入门教程(16): 设置或取得元素的CSS class
- 循环控制结构程序01 - 零基础入门学习C语言16
- 元胞自动机模型01——认识元细胞机模型
- Java反射机制(创建Class对象的三种方式)
- 【20110420-01】AE中对现有FeatureClass添加字段的问题