Java Class类的使用 和 动态加载类-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Java Class类的使用 和 动态加载类

简介: Class类 1)在面向对象的世界里,万事万物皆对象。 类是对象,类是java.lang.Class类的实例对象。 There is a class named Class 2)Foo的实例对象如何表示 Foo foo1=new Foo();//foo1就表示出来了 ...
Class类
1)在面向对象的世界里,万事万物皆对象。
   类是对象,类是java.lang.Class类的实例对象。
   There is a class named Class
2)Foo的实例对象如何表示
     Foo foo1=new Foo();//foo1就表示出来了
   Foo这个类也是一个实例对象,Class类的实例对象,如何表示呢?
   任何一个类都是Class的实例对象,这个实例对象有三种表示方式
  (1) 第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量class
     Class c1=Foo.class; 
   
(2)第二种表达方式--->已经知道该类的对象通过getClassF方法
Class c2=foo1.getClass(); 官网c1,c2表示了Foo类的类类型(class type),万事万物皆对象,类也是对象,是Class类的实例对象 这个对象我们称为该类的类类型 不管c1 or c2都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 (3)第三种表达方式 Class c3=null; c3=Class.forName("com.imooc.reflect.Foo"); 我们完全可以通过类的类类型创建类的对象实例--->通过c1 or c2 or c3创建Foo的实例对象 Foo foo=(Foo)c1.newInstance();//需要有无参数的构造方法

动态加载类
动态加载类
1、静态加载类,是编译时刻加载;动态加载类,是运行时刻加载
2、new创建对象:是静态加载类,在编译时刻就需要加载所有的【可能使用到的类】。有一个类有问题(如不存在),都不能通过编译,会报错。
3、Class.forName()通过动态加载类,可以用到一个类时,才进行加载。
【功能性的类尽量使用动态加载,并对新添的类实现功能性接口(标准),这样就不用重新编译】

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章