Java中java.lang.Class的初步学习
生活随笔
收集整理的这篇文章主要介绍了
Java中java.lang.Class的初步学习
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录
理论
实例
理论
Java中有个java.lang.Class,是java虚拟机用的。把每一个类当成一个对象,放到java虚拟机里面,这是C/C++中没有的。
类是对象的抽象,类是java.lang.Class类抽象的抽象。
java.lang.Class的实例是Java中开发者创建的类,对象是开发者创建类的实例。
这里个人觉得是因为Java跑起来需要Java虚拟机,所以在C/C++的基础上再套一层。
实例
源码如下:‘
package my;class Foo{public void print() {System.out.println("Foo print");} }public class ClassDemo {public static void main(String[] args) {Foo foo1 = new Foo();//方法一@SuppressWarnings("rawtypes")Class c1 = Foo.class;//方法二@SuppressWarnings("rawtypes")Class c2 = foo1.getClass();//方法三@SuppressWarnings("rawtypes")Class c3 = null;try {c3 = Class.forName("my.Foo");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}//创建对象try {Foo foo = (Foo)c1.newInstance();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(c2 == c3);}}运行截图如下:
这里有三种方式得到Class类
方式一:任何一个类都有一个隐含的静态成员变量Class
方式二:以及知道该类对象通过getClass方法
方式三:通过Class中的forName创建实例
这里可以通过类类型创建该类的实例。如上面的
Foo foo = (Foo)c1.newInstance();
这里需要无参的构造函数
新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!
总结
以上是生活随笔为你收集整理的Java中java.lang.Class的初步学习的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java笔记-RabbitMQ中生产者端
- 下一篇: Java笔记-RabbitMQ的消息确认