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

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()通过动态加载类,可以用到一个类时,才进行加载。
【功能性的类尽量使用动态加载,并对新添的类实现功能性接口(标准),这样就不用重新编译】
时间: 2024-08-03 17:02:14

Java Class类的使用 和 动态加载类的相关文章

JAVA的多态、接口、动态加载类等

为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A.B.C的表达式.现有两种工具:Car和Plane,其中Car的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C.需要编写三类:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序.其运行过程如下,从命令行输入Compu

Java 从Jar文件中动态加载类

由于开发的需要,需要根据配置动态加载类,所以简单测试了一下JAVA动态加载类 定义接口 package loader; public interface HelloIface {     public String hello();          public String sayHi(String name); } 实现接口 在其他插件类实现此接口,并导出为jar,如D:/tmp/test.jar package loader; public class HelloImpl impleme

java 利用java反射机制动态加载类的简单实现_java

如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<

反射 学习笔记之动态加载类

1 Class.forName("类的全名")不仅表示了类的类类型,还代表了动态加载类 2 编译时刻加载类称之为静态加载,运行时刻加载类是动态加载类 3 new 对象是静态加载类,在编译时刻就需要加载所有的可能使用的类(编译时刻加载) 用Edit写一个reflectDemo2,里面有俩个命令行参数判断的代码word,execl,我们在同一个文件夹下写一个word类不写execl类,我们假如只想运行word不想运行execl,但是很不幸,由于这是静态加载,javacreflectDemo

动态加载类的原理——元数据的使用

动态|加载|数据 在使用.NET创建的程序或组件时,元数据(metadata)和代码(code)都存储于"自成一体"的单元中,这个单元称为装配件.我们可以在程序运行期间访问这些信息. 在System.Reflection中有这样一个class----Assembly,我们可以通过它来加载一个装配件.方法如下: Assembly assm=Assembly.LoadFrom(fileName); 其中filename是要加载的装配件的文件名称(带路径). 接下来,我们就可以通过使用Sys

Visual Basic .NET 中动态加载类(一)

visual|动态|加载 Visual Basic .NET 中动态加载类 · ··Microsoft 摘要:理想情况下,编写软件系统之前我们就应该知道此软件系统需要完成哪些操作.但实际情况并非如此,因此我们的系统应该是可以调整的. 最能体现这种适应性的是动态集成新功能的能力.例如,在 Windows 窗体应用程序中,这种能力是指加载编译原始应用绦蚝芫靡院蟠唇ǖ拇疤宓哪芰Α?/P> 这种操作在 Microsoft Visual Basic 6.0 中几乎是不可能的,但是在 Visual Basi

Visual Basic .NET 中动态加载类 (三)

visual|动态|加载 ··Microsoft 步骤 8:用新的窗体信息更新配置文件 现在,我们已经创建了一些新窗体,还需要在配置文件中引用它们.请用以下代码行替换 FormsOnTheFly.exe.config 中的占位符信息: <add key="First Form" value="C:\NewForms\FirstForm.dll~FirstForm.Form1"></add><add key="Second Fo

Visual Basic .NET 中动态加载类 (二)

visual|动态|加载 Microsoft 步骤 3:创建配置文件以存放可用窗体 应用程序在运行时需要的某些信息可能在编译时无法提供,这些信息通常放置在配置文件中.在 Visual Basic 6.0 中,配置文件应该是 INI 文件或 Windows 注册表.而在 .NET 中,则使用基于 XML 的配置文件. 我们无法详细介绍配置文件,因为这个主题非常复杂.但是,您应该知道,Windows 窗体应用程序的配置文件与应用程序的 EXE 启动文件在同一个目录中.配置文件的名称与程序的 EXE

java 根据X、Y坐标动态加载地图  追加···

问题描述 见标题:我的应用想要的效果是,在java程序中根据X.Y坐标参数,动态加载地图,比如Google地图!或者其他在线地图! 我记得java有个工具包可以加壳之后加载动态网页的,可是忘记了,请大侠们帮帮忙啊! 解决方案 解决方案二:请楼主查阅j2se-Api文档-解决方案三:之前做过地图,但是不用工具包做的,建议楼主查百度.或许会有好办法解决方案四:引用1楼hpjianhua的回复: 请楼主查阅j2se-Api文档- j2ee-Api具体哪个内容?解决方案五:在baidu上搜下看看