为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

课程名称: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、静态加载类

https://img2.sycdn.imooc.com/63e593650001b18c14540818.jpg

2、动态加载类

https://img1.sycdn.imooc.com/63e59370000143e414480822.jpg

三、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() 获取参数类型,得到的是参数列表的类型的类类型

}

https://img2.sycdn.imooc.com/63e593810001a71814500816.jpg


课程收获:

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消