<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java class

    文檔

    java class

    CLASS是在網絡工程中的一種協議,在java中有兩種對象:實例對象和Class對象。每個類運行時的類型信息就是用Class對象表示的,它包含了與類有關的信息,其實實例對象就是通過Class對象來創建的。
    推薦度:
    導讀CLASS是在網絡工程中的一種協議,在java中有兩種對象:實例對象和Class對象。每個類運行時的類型信息就是用Class對象表示的,它包含了與類有關的信息,其實實例對象就是通過Class對象來創建的。

    java class是什么,讓我們一起了解一下?

    CLASS是在網絡工程中的一種協議,在java中有兩種對象:實例對象和Class對象。每個類運行時的類型信息就是用Class對象表示的,它包含了與類有關的信息,其實實例對象就是通過Class對象來創建的。

    那我們如何獲得Class對象?

    1、Class.forName(“類的全限定名”)

    2、實例對象.getClass()

    3、類名.class (類字面常量)

    實戰操作:如何獲得一個實例的類型類?

    Object類中包含一個方法名叫getClass,利用這個方法就可以獲得一個實例的類型類。類型類指的是代表一個類型的類,因為一切皆是對象,類型也不例外,在Java使用類型類來表示一個類型,所有的類型類都是Class類的實例。getClass()會看到返回Class

    JDK中,普通的Class.newInstance()方法的定義返回Object,要將該返回類型強制轉換為另一種類型,但是使用泛型的Class,Class.newInstance()方法具有一個特定的返回類型。

    代碼如下:

    public?class?Main2?{
    ????public?static?void?main(String[]?args)?throws?InstantiationException,?IllegalAccessException?{
    ????????System.out.println("1-----------");
    ????????Dog?dog1?=?creatNew1(Dog.class);
    ????????System.out.println(dog1.name?+?"?is?"?+?dog1.type+?"\n");
    ????????System.out.println("2-----------");
    ????????Animal?ani1?=?creatNew2(Cat.class);
    ????????Cat?cat1?=?(Cat)?ani1;
    ????????System.out.println(cat1.name?+?"?is?"?+?cat1.type?+?"\n");
    ????????System.out.println("3-----------");
    ????????Object?obj?=?creatNew3(Dog.class);
    ????????Dog?dog2?=?(Dog)?obj;
    ????????System.out.println(dog1.name?+?"?is?"?+?dog2.type?+?"\n");
    ????????System.out.println("4-----------");
    ????????Object?obj2?=?creatNew4(Cat.class);
    ????????Cat?cat2?=?(Cat)?obj2;
    ????????System.out.println(cat2.name?+?"?is?"?+?cat2.type?+?"\n");
    ????????System.out.println("5-----------");
    ????????Object?obj3?=?creatNew5(new?Cat());
    ????????Cat?cat3?=?(Cat)?obj3;
    ????????System.out.println(cat3.name?+?"?is?"?+?cat3.type?+?"\n");
    ????}
    ????/**
    ?????*?此方法是一個非泛型類中的泛型方法,參數為Class類型,可以傳入任何類,但是Class將參數在函數內部的類型固定為?T類,使用clazz.newInstance(),返回的類型也為固定的?T?類型。
    ?????*?如:?傳入Dog.class,?函數中的?T?固定為Dog.class,函數返回的是Dog類型,不需要強制轉換為Dog類型
    ?????*?(當然,函數返回類型也可以是Object類型,但是沒必要)
    ?????*/
    ????public?static??T?creatNew1(Class?clazz)?throws?IllegalAccessException,?InstantiationException?{
    ????????System.out.println(clazz);//打印具體傳入的類型。
    ????????return?clazz.newInstance();
    ????}
    ????/**
    ?????*?此方法參數是Class,只能傳入Animal及其子類的類型,函數返回類型只能聲明為Animal或Object類型,
    ?????*?如:傳入Cat.class,函數返回一個Animal的子類對象,需將此子類對象強制轉換為具體的子類(即Cat類)。
    ?????*/
    ????public?static?Animal?creatNew2(Class?clazz)?throws?IllegalAccessException,?InstantiationException?{
    ????????System.out.println(clazz);//打印具體傳入的類型。
    ????????return?clazz.newInstance();
    ????}
    ????/**
    ?????*?此方法參數是Class,可傳入任何類,其返回只能聲明為Object類對象。
    ?????*?如:傳入Dog.class,?返回的是Object類型的對象,需強制轉換為Dog類型的對象。
    ?????*/
    ????public?static?Object?creatNew3(Class?clazz)?throws?IllegalAccessException,?InstantiationException?{
    ????????System.out.println(clazz);//打印具體傳入的類型。
    ????????return?clazz.newInstance();
    ????}
    ????/**
    ?????*?傳入參數Class?和?上一個方法傳入?Class?的區別還不是很清楚,其返回只能聲明為Object類對象。
    ?????*?如:Cat.class,?返回的是Object類型的對象,需強制轉換為Cat類型的對象。
    ?????*/
    ????public?static?Object?creatNew4(Class?clazz)?throws?IllegalAccessException,?InstantiationException?{
    ????????System.out.println(clazz);//打印具體傳入的類型。
    ????????return?clazz.newInstance();
    ????}
    ????/**
    ?????*?傳入Object類型的對象,返回也聲明為Object類型。
    ?????*/
    ????public?static?Object?creatNew5(Object?object)?{
    ????????System.out.println(object.getClass());//打印具體傳入的類型。
    ????????return?object;
    ????}
    }
    abstract?class?Animal?{
    ????public?String?type?=?"type?=?animal?";
    }
    class?Dog?extends?Animal?{
    ????public?String?name?=?"name?=?gou";
    }
    class?Cat?extends?Animal?{
    ????public?String?name?=?"name?=?mao";
    }
    /**
    ?*?這些方法,傳的參數聲明不同,其返回的聲明也必然要隨之不同。
    ?*/

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java class

    CLASS是在網絡工程中的一種協議,在java中有兩種對象:實例對象和Class對象。每個類運行時的類型信息就是用Class對象表示的,它包含了與類有關的信息,其實實例對象就是通過Class對象來創建的。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java class.forname java classloader java clob java clone() java collect java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 復活節的由來 java const java consumer接口 統一和康師傅是哪國的 java cipher java charset java charsequence java charat java channel iPad怎么重啟 java cglib 平板如何錄屏 java ceiling java callback java calendar獲取當前時間 蘋果13怎么開機 java calculate java byte取值范圍 java bytebuffer java bundle java build.gradle java bufferedoutputstream java bufferedimage wps怎么求和
    Top 国产99视频精品免费视频7| 亚洲综合一区二区精品久久| 精品国产一区二区麻豆| 精品综合久久久久久888蜜芽| 天天视频国产精品| 人妻少妇看A偷人无码精品视频| 久99久精品免费视频热77| 久久久久这里只有精品| 国产精品青青青高清在线观看| 孩交videos精品乱子豆奶视频| 久久免费国产精品一区二区| 国产成人精品久久一区二区三区av | 亚洲国产一二三精品无码| 成人国产精品一区二区网站| 国产成人精品一区二三区熟女| 玖玖精品在线视频| 91一区二区在线观看精品| 亚洲精品成人av在线| 国产精品特级毛片一区二区三区| 久久99精品九九九久久婷婷| 无码乱码观看精品久久| 国产精品极品美女自在线观看| 国产精品高清在线观看地址| 久久精品国产日本波多野结衣| 99re在线精品视频| 国产成人麻豆精品午夜福利在线| 亚洲综合一区无码精品| 国产成人精品综合网站| 精品一区二区三区在线播放视频| 午夜影视日本亚洲欧洲精品一区| 久草视频这里只有精品| 麻豆精品久久精品色综合| 最新国产精品拍自在线观看| 东北妇女精品BBWBBW| 久久精品亚洲福利| 99在线精品视频| 自拍偷在线精品自拍偷| 国产麻豆9l精品三级站| 麻豆精品久久精品色综合| 国产精品丝袜一区二区三区| 久久91精品国产91久久|