手记

【备战春招】第4天 JAVA-Reflect专题

课程名称:JAVA反射

课程章节:1-1 Class类的使用(https://www.imooc.com/video/3725)

课程讲师: Cedar

课程内容:

 

一、Class类的使用

1、类是对象,类是java.lang.Class类的实例对象

任何一个类都是Class的实例对象,这个实例对象有三种表示方式

Foo foo1 = new Foo();

1)任何一个类都有一个隐含的静态成员变量class

Class c1 = Foo.class;

2)已知该类的对象,通过getClass方法

Class c2 = foo1.getClass();

c1和c2表示了Foo类的类类型(class type);

3)Class.forName

Class c3 = Class.forName("com.imooc.reflect.Foo");

c1、c2、c3相等,一个类只可能是Class类的一个实例对象

2、可以通过类的类类型创建该类的对象实例

Foo foo = (Foo)c1.newInstance(); //需要有无参数的构造方法

二、Java动态加载类

编译时刻加载类为静态加载类、运行时刻加载类是动态加载类

1、静态加载类

2、动态加载类

三、Java获取方法信息

1、基本数据类型

关键字(如void)都存在类类型

Class c2 = String.class;

c2.getName() //全称,含包名

c2.getSimpleName()

2、类的成员函数、成员变量

1)

Class c = obj.getClass(); //obj是哪个子类的对象,c就是该子类的类类型

c.getName(); //获取类的名称

2)

Method[] ms = c.getMethods(); //获取所有的Public的函数,包括父类继承而来的方法

//c.getDeclaredMethods(); 获取该类自己声明的方法

Class returnType = ms[i].getReturnType(); //得到方法的返回值类型的类类型

returnType.getName(); 

ms[i].getName(); //得到方法的名称

3)

Class[] paramTypes = ms[i].getParameterTypes();

for(Class class1:paramTypes){

//class1.getName() 获取参数类型,得到的是参数列表的类型的类类型

}


课程收获:

类类型、类对象、静态加载、动态加载,听完课程感觉非常有意思,还需要加深理解。


0人推荐
随时随地看视频
慕课网APP