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的消息确认