预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

12Class与类动态装入Stringname="hello"; ClassstringClass=name.getClass(); System.out.println("类名:"+ stringClass.getName()); System.out.println("是否为接口:"+ stringClass.isInterface()); System.out.println("是否为基本类型:"+ stringClass.isPrimitive()); System.out.println("是否为数组:"+ stringClass.isArray()); System.out.println("父类名:"+ stringClass.getSuperclass().getName());Class的信息是在编译时确定的 执行时JVM在使用某个类时,会先检查对应的Class对象是否装入 如果沒有装入,则会寻找对应的.class档案并装入一个类在JVM中只会有一个Class实例 每个类的实例都会记得自己是由哪个Class实例所生成 可使用getClass()或.class来取得Class实例7数组是对象,也有其对应的Class实例从Class中获得信息try{ Classc=Class.forName(args[0]); Packagep=c.getPackage(); System.out.println(p.getName()); } catch(ArrayIndexOutOfBoundsExceptione){ System.out.println("没有指定类"); } catch(ClassNotFoundExceptione){ System.out.println("找不到指定类"); }Classc=Class.forName(args[0]); Packagep=c.getPackage(); System.out.printf("package%s;%n",p.getName()); //取得类型修饰,是否是class、interface intm=c.getModifiers(); System.out.print(Modifier.toString(m)+""); //如果是接口 if(Modifier.isInterface(m)){ System.out.print("interface"); } else{ System.out.print("class"); } System.out.println(c.getName()+"{");//获得声明的成员 Field[]fields=c.getDeclaredFields(); for(Fieldfield:fields){ //显示权限修饰,如public、protected、private System.out.print("\t"+ Modifier.toString(field.getModifiers())); //显示名称 System.out.print(""+ field.getType().getName()+""); //输出成员名称 System.out.println(field.getName()+";"); }//获得构造方法 Constructor[]constructors= c.getDeclaredConstructors(); for(Constructorconstructor:constructors){ //输出控制修饰public、protected、private System.out.print("\t"+ Modifier.toString( constructor.getModifiers())); //输出名称 System.out.println(""+ constructor.getName()+"();"); }//获得成员函数 Method[]methods=c.getDeclaredMethods(); for(Methodmethod:methods){ System.out.print("\t"+ Modifier.toString( method.getModifiers())) System.out.print(""+ method.getReturnType().getName()+""); System.out.println(method.getName()+"();"); }动态生成对象如果要动态加载并生成对象,则须指定初始参数 要先指定参数类型 取得构造方法 使用Constructor的newInstance()并指定参数后生成实例动态生成对象18执行方法C