最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中class和Class的區(qū)別示例詳解

 更新時(shí)間:2022年04月02日 15:31:00   作者:YuShiwen  
class 是java的關(guān)鍵字,在聲明java類時(shí)使用,Class是java JDK提供的一個(gè)類,完整路徑為java.lang.Class,下面這篇文章主要給大家介紹了關(guān)于Java中class和Class區(qū)別的相關(guān)資料,需要的朋友可以參考下

一.class與Class區(qū)別

class是Java中的關(guān)鍵字,如public class Xxx 或者 class Xxx ,在聲明Java類時(shí)使用。 而Class是一個(gè)類。 我們通常認(rèn)為類是對(duì)象的抽象和集合,Class就相當(dāng)于是對(duì)類的抽象和集合。 也可以認(rèn)為對(duì)象是類的實(shí)例,類是Class的實(shí)例。

二.Class介紹

Class是一個(gè)類。如下圖,它在java.lang包中。

它的構(gòu)造函數(shù)是private屬性,所以我們不能直接new一個(gè)Class對(duì)象出來(lái),如下圖注釋段所說(shuō): “私有構(gòu)造函數(shù)。只有Java虛擬機(jī)創(chuàng)建類對(duì)象。不使用此構(gòu)造函數(shù),并阻止生成默認(rèn)構(gòu)造函數(shù)。”

三.如何得到Class對(duì)象

1.通過(guò)getClass()方法獲取到Class對(duì)象

getClass()方法是Object類的一部分,如下圖:

如果我們已經(jīng)創(chuàng)建了某個(gè)類型的對(duì)象,那么我們可以通過(guò)getClass()方法來(lái)獲取該類型的Class的對(duì)象:

package Task;
import org.junit.Test;
public class Try0 {
    @Test
    public void toTry() throws ClassNotFoundException {
//        //forName方法:參數(shù)為其類的路徑
//        Class a = Class.forName("Task.Try1");
//        System.out.println(a);
        //通過(guò)對(duì)象得到類
        Try1 try1 = new Try1();
        Class b = try1.getClass();
        System.out.println(b);
    }
}

class Try1{
}

測(cè)試運(yùn)行結(jié)果:

2.通過(guò)forName()方法獲取到Class對(duì)象

Class.forName方法是Class類的一個(gè)靜態(tài)方法,如下圖:

所以可以直接通過(guò)Class.forName("類的路徑")獲取Class對(duì)象:

package Task;
import org.junit.Test;
public class Try0 {
    @Test
    public void toTry() throws ClassNotFoundException {
        //forName方法:參數(shù)為其類的路徑
        Class a = Class.forName("Task.Try1");
        System.out.println(a);
    }
}

class Try1{
}

測(cè)試運(yùn)行截圖:

3.類.class獲得Class對(duì)象(類字面常量)

package Task;
import org.junit.Test;
public class Try0 {
    @Test
    public void toTry() throws ClassNotFoundException {
//        //forName方法:參數(shù)為其類的路徑
//        Class a = Class.forName("Task.Try1");
//        System.out.println(a);

//        //通過(guò)對(duì)象得到類
//        Try1 try1 = new Try1();
//        Class b = try1.getClass();
//        System.out.println(b);

        //類字面常量
        Class c = Try1.class;
        System.out.println(c);
    }
}

class Try1{
}

測(cè)試運(yùn)行結(jié)果:

四.Class常用方法

package Task;
import org.junit.Test;
public class Try0 {
    @Test
    public void toTry() throws ClassNotFoundException {
//        //forName方法:參數(shù)為其類的路徑
//        Class a = Class.forName("Task.Try1");
//        System.out.println(a);

        //通過(guò)對(duì)象得到類
        Try1 try1 = new Try1();
        Class b = try1.getClass();
        System.out.println(b);

//        //類字面常量
//        Class c = Try1.class;
//        System.out.println(c);
        //isInterface方法,判斷是否為接口
        System.out.println(b.isInterface());
        //isArray方法,判斷是否為數(shù)組
        System.out.println(b.isArray());
        //isPrimitive方法,判斷是否是基本類型,例如int是基本類型,Integer為包裝類
        System.out.println(b.isPrimitive());
        //isAnnotation方法,判斷是否為注解,注解如常見(jiàn)的重寫注解@Override,我們所用的單元測(cè)試@Test注解
        System.out.println(b.isAnnotation());
        //isInstance方法參數(shù)是一個(gè)對(duì)象,判斷該對(duì)象try1對(duì)應(yīng)的類Try1是否是b的對(duì)象
        System.out.println(b.isInstance(try1));
        //getClassLoader方法,獲取類加載器
        System.out.println(b.getClassLoader());
        //getSuperclass方法,獲取父類信息
        System.out.println(b.getSuperclass());
        //getGenericSuperclass方法,也是獲取父類信息
        System.out.println(b.getGenericSuperclass());
        //getComponentType方法,如果b的類型是數(shù)組,則獲取數(shù)組里元素的類型
        System.out.println(b.getComponentType());
        //getDeclaredClasses方法,獲取b繼承于哪個(gè)類
        System.out.println(b.getDeclaredClasses());


        //幾個(gè)獲取name的方法:
        //getName方法
        System.out.println(b.getName());
        //getTypeName方法
        System.out.println(b.getTypeName());
        //getCanonicalName方法
        System.out.println(b.getCanonicalName());
        //getSimpleName方法
        System.out.println(b.getSimpleName());

//        以下還有一些方法只列舉出來(lái)
//        getTypeParameters方法,獲取泛型類中的泛型參數(shù)數(shù)組
//        getClasses方法,獲取Class對(duì)象中public修飾的內(nèi)部類
//        getDeclaredClasses方法,獲取Class對(duì)象中的內(nèi)部類,繼承成員不包含在內(nèi)
//        getConstructors方法,獲取public修飾的構(gòu)造函數(shù)
//        getConstructor方法,查找對(duì)應(yīng)的構(gòu)造函數(shù)
//        getDeclaredConstructors方法,獲取Class對(duì)象中的構(gòu)造函數(shù)
    }
}

class Try1 {
}

輸出截圖如下:

總結(jié)

到此這篇關(guān)于Java中class和Class區(qū)別的文章就介紹到這了,更多相關(guān)Java class和Class區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 新手初學(xué)Java的內(nèi)部類

    新手初學(xué)Java的內(nèi)部類

    這篇文章主要介紹了java內(nèi)部類原理與用法,結(jié)合實(shí)例形式分析了Java內(nèi)部類的概念、原理、分類及相關(guān)使用技巧,需要的朋友可以參考下,希望能給你帶來(lái)幫助
    2021-07-07
  • IDEA編譯亂碼Build Output提示信息亂碼

    IDEA編譯亂碼Build Output提示信息亂碼

    IDEA編譯的時(shí)候亂碼,Build Output提示信息亂碼,本文就詳細(xì)的介紹一下解決方法,有需要的同學(xué)可以了解一下
    2021-06-06
  • Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel的操作方法

    Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel的操作方法

    在做一個(gè)?SpringBoot?前后端分離項(xiàng)目的時(shí)候,需要將數(shù)據(jù)存到?Excel中,用戶可以下載?Excel,具體實(shí)現(xiàn)是采用?Apache?強(qiáng)大的?POI,本文給大家介紹Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-09-09
  • 詳解Java分布式事務(wù)的 6 種解決方案

    詳解Java分布式事務(wù)的 6 種解決方案

    在分布式系統(tǒng)、微服務(wù)架構(gòu)大行其道的今天,服務(wù)間互相調(diào)用出現(xiàn)失敗已經(jīng)成為常態(tài),本文側(cè)重于其他幾項(xiàng),關(guān)于 2PC、3PC 傳統(tǒng)事務(wù),網(wǎng)上資料已經(jīng)非常多了,這里不多做重復(fù),本文通過(guò)示例給大家介紹Java分布式事務(wù)的 6 種解決方案,一起看看吧
    2021-06-06
  • java HttpClient傳輸json格式的參數(shù)實(shí)例講解

    java HttpClient傳輸json格式的參數(shù)實(shí)例講解

    這篇文章主要介紹了java HttpClient傳輸json格式的參數(shù)實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Java多線程CountDownLatch的實(shí)現(xiàn)

    Java多線程CountDownLatch的實(shí)現(xiàn)

    本文主要介紹了Java多線程CountDownLatch的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Maven管理SpringBoot Profile詳解

    Maven管理SpringBoot Profile詳解

    這篇文章主要介紹了Maven管理SpringBoot Profile詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • SpringBoot項(xiàng)目攔截器獲取Post方法的請(qǐng)求body實(shí)現(xiàn)

    SpringBoot項(xiàng)目攔截器獲取Post方法的請(qǐng)求body實(shí)現(xiàn)

    本文主要介紹了SpringBoot項(xiàng)目攔截器獲取Post方法的請(qǐng)求body,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn)

    java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn)

    本文主要介紹了java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 在Spring Boot項(xiàng)目中引入本地JAR包的步驟和配置

    在Spring Boot項(xiàng)目中引入本地JAR包的步驟和配置

    本文探討了在Spring Boot項(xiàng)目中引入本地JAR包的步驟和必要的配置,通過(guò)使用Maven的system作用域,開發(fā)者可以將自定義的本地庫(kù)或功能集成到Spring Boot應(yīng)用程序中,,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

贵德县| 建德市| 神池县| 盈江县| 元谋县| 上虞市| 定日县| 郓城县| 桃园市| 邢台县| 松原市| 安顺市| 松溪县| 永仁县| 临夏市| 茶陵县| 丰镇市| 宝丰县| 江口县| 时尚| 孙吴县| 长寿区| 志丹县| 修水县| 沂源县| 北宁市| 淮安市| 孙吴县| 合肥市| 泽库县| 辉南县| 新竹县| 平罗县| 集贤县| 西乡县| 五台县| 夹江县| 铁力市| 钟山县| 普定县| 闸北区|