亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java進階教程之運行時類型識別RTTI機制

2019-11-26 15:26:15
字體:
來源:轉載
供稿:網友

運行時類型識別(RTTI, Run-Time Type Identification)是Java中非常有用的機制,在Java運行時,RTTI維護類的相關信息。

多態(polymorphism)是基于RTTI實現的。RTTI的功能主要是由Class類實現的。

Class類

Class類是"類的類"(class of classes)。如果說類是對象的抽象和集合的話,那么Class類就是對類的抽象和集合。

每一個Class類的對象代表一個其他的類。比如下面的程序中,Class類的對象c1代表了Human類,c2代表了Woman類。

復制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        Class c1      = aPerson.getClass();
        System.out.println(c1.getName());

        Human anotherPerson = new Woman();
        Class c2      = anotherPerson.getClass();
        System.out.println(c2.getName()); 
    }
}

class Human
{   
    /**
     * accessor
     */
    public int getHeight()
    {
       return this.height;
    }

    /**
     * mutator
     */
    public void growHeight(int h)
    {
        this.height = this.height + h;
    }
private int height;
}


class Woman extends Human
{
    /**
     * new method
     */
    public Human giveBirth()
    {
        System.out.println("Give birth");
        return (new Human());
    }

}

當我們調用對象的getClass()方法時,就得到對應Class對象的引用。

在c2中,即使我們將Women對象的引用向上轉換為Human對象的引用,對象所指向的Class類對象依然是Woman。

Java中每個對象都有相應的Class類對象,因此,我們隨時能通過Class對象知道某個對象“真正”所屬的類。無論我們對引用進行怎樣的類型轉換,對象本身所對應的Class對象都是同一個。當我們通過某個引用調用方法時,Java總能找到正確的Class類中所定義的方法,并執行該Class類中的代碼。由于Class對象的存在,Java不會因為類型的向上轉換而迷失。這就是多態的原理。

getClass: 我是誰?

除了getClass()方法外,我們還有其他方式調用Class類的對象。

復制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Class c3      = Class.forName("Human");
        System.out.println(c1.getName());

        Class c4      = Woman.class
        System.out.println(c2.getName()); 
    }
}

上面顯示了兩種方式:

1.forName()方法接收一個字符串作為參數,該字符串是類的名字。這將返回相應的Class類對象。

2.Woman.class方法是直接調用類的class成員。這將返回相應的Class類對象。

Class類的方法

Class對象記錄了相應類的信息,比如類的名字,類所在的包等等。我們可以調用相應的方法,比如:

復制代碼 代碼如下:

getName()         返回類的名字
getPackage()      返回類所在的包

可以利用Class對象的newInstance()方法來創建相應類的對象,比如:

復制代碼 代碼如下:

Human newPerson = c1.newInstance(); 

newInstance()調用默認的不含參數的構建方法。

我們可以獲得類定義的成員:

復制代碼 代碼如下:

getFields()       返回所有的public數據成員
getMethods()      返回所有的public方法

可以進一步使用Reflection分析類。這里不再深入。

Class類更多的方法可查詢官方文檔:

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html

Class類的加載

當Java創建某個類的對象,比如Human類對象時,Java會檢查內存中是否有相應的Class對象。

如果內存中沒有相應的Class對象,那么Java會在.class文件中尋找Human類的定義,并加載Human類的Class對象。

在Class對象加載成功后,其他Human對象的創建和相關操作都將參照該Class對象。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色婷婷综合成人| 欧美视频在线免费看| 日韩动漫免费观看电视剧高清| 亚洲天堂网站在线观看视频| 亚洲国产高清自拍| 亚洲精品网站在线播放gif| 亚洲精品美女在线观看播放| 国内免费久久久久久久久久久| 欧美日本亚洲视频| 亚洲欧美精品在线| 欧美激情视频一区| 欧美国产日韩一区| 国产综合久久久久久| 欧美性极品xxxx娇小| 91系列在线观看| 另类专区欧美制服同性| 精品欧美激情精品一区| 性欧美亚洲xxxx乳在线观看| 亚洲激情免费观看| 国产91在线高潮白浆在线观看| 91大神福利视频在线| 精品视频9999| 国产精品扒开腿做爽爽爽的视频| 日日噜噜噜夜夜爽亚洲精品| 欧美成人在线影院| 亚洲第一福利网| 欧美日韩亚洲精品一区二区三区| 欧美性xxxxx极品| 国产精品福利网站| 国产精品久久久久91| 欧美最顶级的aⅴ艳星| 亚洲午夜av久久乱码| 久久精品一本久久99精品| 日韩精品在线电影| 亚洲自拍偷拍一区| 福利一区福利二区微拍刺激| 欧美日韩国产丝袜美女| 亚洲色图五月天| 久久久99久久精品女同性| 亚洲美女av电影| 国产97在线视频| 欧美日韩中文在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 97精品欧美一区二区三区| 国产精品91视频| 91影视免费在线观看| 成人精品视频久久久久| 亚洲综合中文字幕在线| 欧美老女人性生活| 一区二区三区回区在观看免费视频| 日韩在线观看成人| 国产激情综合五月久久| 日av在线播放中文不卡| 亚洲欧美日韩国产成人| 久久精品色欧美aⅴ一区二区| 国产精品激情av电影在线观看| 国产精品直播网红| 久久成年人免费电影| 国产亚洲一区二区精品| 在线精品高清中文字幕| 成人精品视频99在线观看免费| 精品自拍视频在线观看| 精品少妇一区二区30p| 国产精品国内视频| 国产精品91在线观看| 日韩av在线播放资源| 国产剧情久久久久久| 中文字幕v亚洲ⅴv天堂| 91香蕉电影院| 亚洲国产精品99| 亚洲精品91美女久久久久久久| 91精品国产精品| 视频一区视频二区国产精品| 久久这里只有精品99| 欧美成人一区在线| 欧美激情在线观看视频| 亚洲男人天堂2019| 国产91成人在在线播放| 国产精品自拍视频| 91成人免费观看网站| 永久免费毛片在线播放不卡| 亚洲第一免费播放区| 日韩高清不卡av| 欧美富婆性猛交| 欧美人成在线视频| 亚洲精品久久久一区二区三区| 国产精品一区二区三区久久| 日本精品在线视频| 欧美激情一区二区三级高清视频| 亚洲精品自拍视频| 欧美一级大胆视频| 精品久久久久久久久久久久久久| 国产aⅴ夜夜欢一区二区三区| 精品久久久久久中文字幕大豆网| 亚洲在线免费视频| 日韩视频在线观看免费| 久久久久久久久久久久久久久久久久av| 最新国产成人av网站网址麻豆| 全亚洲最色的网站在线观看| 日韩国产中文字幕| 午夜精品一区二区三区视频免费看| 日韩中文在线视频| 亚洲国产成人精品久久久国产成人一区| 全色精品综合影院| 亚洲成人av片| 国产成人精品久久二区二区| 91久久国产婷婷一区二区| 国产91色在线免费| 国产成人综合一区二区三区| 日韩国产中文字幕| 欧美与欧洲交xxxx免费观看| 91色p视频在线| 亚洲欧美日韩综合| 欧美亚洲激情在线| 久久久久女教师免费一区| 亚洲第一av网站| 中文字幕国产亚洲2019| 97免费视频在线| 国产成人avxxxxx在线看| 日韩在线视频导航| 日韩电影免费在线观看中文字幕| 日韩免费观看网站| 国内精久久久久久久久久人| 欧美激情xxxxx| 亚洲黄色av网站| 97视频网站入口| 午夜精品一区二区三区在线播放| 国内精久久久久久久久久人| 欧美成人免费在线观看| 亚洲一品av免费观看| 久久精品久久精品亚洲人| 精品国产欧美一区二区五十路| 日韩激情视频在线播放| 伊人一区二区三区久久精品| 久久久999国产| 91在线视频成人| 国产精品视频1区| 欧美成人h版在线观看| 日本免费一区二区三区视频观看| 亚洲人成网站免费播放| 日韩精品免费在线播放| 亚洲欧美日韩一区二区在线| 亚洲精品午夜精品| 丰满岳妇乱一区二区三区| 亚洲黄色www网站| 国产欧美日韩中文字幕| 亚洲综合精品伊人久久| 亚洲精品一区二区三区婷婷月| 最近中文字幕日韩精品| 亚洲精品视频播放| 成人看片人aa| 97精品一区二区三区| 国产精品专区h在线观看| 国产午夜精品视频| 久热精品视频在线免费观看| 久久91亚洲精品中文字幕奶水| 最新69国产成人精品视频免费| 97久久久久久| 日韩专区在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲中国色老太| 亚洲精品小视频在线观看| 疯狂做受xxxx欧美肥白少妇| 欧美裸体xxxx极品少妇|