国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Java語(yǔ)言基礎(chǔ):RTTI

發(fā)布時(shí)間:2011-3-29 19:34    發(fā)布者:1770309616
關(guān)鍵詞: Java語(yǔ)言基礎(chǔ) , RTTI
Java語(yǔ)言基礎(chǔ).pdf (205.39 KB)


1.  每個(gè)類(lèi)都有一個(gè)Class對(duì)象,當(dāng)我們?cè)谶\(yùn)行期第一次生成類(lèi)的實(shí)例時(shí),JVM就加載這個(gè)類(lèi)的Class對(duì)象,然后用這個(gè)Class對(duì)象來(lái)創(chuàng)建類(lèi)實(shí)例;Class類(lèi)似于Delphi中的引用類(lèi)TClass,用于保存類(lèi)的運(yùn)行時(shí)信息。

2.  Class的static方法forName()用于查找某個(gè)類(lèi)的Class對(duì)象,如果forName找不到你要的類(lèi)的Class對(duì)象,會(huì)拋出ClassNotFoundException異常:
view plaincopy to clipboardprint?
01.class A{   
02.}   
03.   
04.public class Main {               
05.    public static void main(String[] args) {   
06.        try {   
07.            Class cls = Class.forName("A");   
08.            System.out.println(cls.getName());   
09.        } catch (ClassNotFoundException e) {   
10.            e.printStackTrace();   
11.        }   
12.    }   
13.}  
class A{
}

public class Main {            
    public static void main(String[] args) {
        try {
            Class cls = Class.forName("A");
            System.out.println(cls.getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
3.  查找類(lèi)的Class對(duì)象的另一個(gè)方法是直接調(diào)用類(lèi).class,這會(huì)在編譯期就檢查是否正確,因此不需要捕獲異常:
view plaincopy to clipboardprint?
01.class A{   
02.}   
03.   
04.public class Main {               
05.    public static void main(String[] args) {   
06.        // 類(lèi)有class關(guān)鍵字   
07.        Class acls = A.class;   
08.        System.out.println(acls.getName());   
09.        // 普通類(lèi)型也有   
10.        Class icls = int.class;   
11.        System.out.println(icls.getName());   
12.    }   
13.}  
class A{
}

public class Main {            
    public static void main(String[] args) {
        // 類(lèi)有class關(guān)鍵字
        Class
acls = A.class;
        System.out.println(acls.getName());
        // 普通類(lèi)型也有
        Class icls = int.class;
        System.out.println(icls.getName());
    }
}
4.  判斷兩個(gè)對(duì)象是否屬于同一個(gè)類(lèi),可以通過(guò)比較他們的class的方式,通過(guò)對(duì)象的getClass()方法可以得Class對(duì)象:
view plaincopy to clipboardprint?
01.class A{   
02.}   
03.class B extends A {   
04.}   
05.public class Main {               
06.    public static void main(String[] args) {   
07.        A a = new B();   
08.        B b = new B();   
09.        // a和b都B的實(shí)例,所以為true   
10.        if (a.getClass() == b.getClass())   
11.            System.out.print("yes");   
12.        else  
13.            System.out.print("no");   
14.    }   
15.}  
class A{
}
class B extends A {
}
public class Main {            
    public static void main(String[] args) {
        A a = new B();
        B b = new B();
        // a和b都B的實(shí)例,所以為true
        if (a.getClass() == b.getClass())
            System.out.print("yes");
        else
            System.out.print("no");
    }
}

5.  要判斷對(duì)象是否繼承或?qū)儆谀硞(gè)類(lèi),可以通過(guò)兩個(gè)方法:1是使用instanceof關(guān)鍵字,2是使用Class.isInstance方法:
view plaincopy to clipboardprint?
01.class A{   
02.}   
03.class B extends A {   
04.}   
05.public class Main {               
06.    public static void main(String[] args) {   
07.        A a = new B();   
08.        B b = new B();   
09.        // 使用instanceof關(guān)鍵字,a是否A或其子類(lèi)的對(duì)象   
10.        if (a instanceof A)   
11.            System.out.println("Yes");   
12.        // 使用instanceof關(guān)鍵字,b是否B或其子類(lèi)的對(duì)象   
13.        if (b instanceof B)   
14.            System.out.println("Yes");   
15.        // 使用isInstance方法   
16.        if (A.class.isInstance(a))   
17.            System.out.println("Yes");   
18.        if (B.class.isInstance(a))   
19.            System.out.println("Yes");   
20.    }   
21.}  
class A{
}
class B extends A {
}
public class Main {            
    public static void main(String[] args) {
        A a = new B();
        B b = new B();
        // 使用instanceof關(guān)鍵字,a是否A或其子類(lèi)的對(duì)象
        if (a instanceof A)
            System.out.println("Yes");
        // 使用instanceof關(guān)鍵字,b是否B或其子類(lèi)的對(duì)象
        if (b instanceof B)
            System.out.println("Yes");
        // 使用isInstance方法
        if (A.class.isInstance(a))
            System.out.println("Yes");
        if (B.class.isInstance(a))
            System.out.println("Yes");
    }
}

6.  Class.NewInstance可以創(chuàng)建一個(gè)類(lèi)實(shí)例,該類(lèi)必須有默認(rèn)構(gòu)造函數(shù),否則會(huì)拋出InstantiationException異常:
view plaincopy to clipboardprint?
01.class A{   
02.}   
03.public class Main {               
04.    public static void main(String[] args) {   
05.        try {   
06.            A a = A.class.newInstance();   
07.        } catch (InstantiationException e) {   
08.            e.printStackTrace();   
09.        } catch (IllegalAccessException e) {   
10.            e.printStackTrace();   
11.        }   
12.    }   
13.}  
class A{
}
public class Main {            
    public static void main(String[] args) {
        try {
            A a = A.class.newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}

7.  Class還提供了一些更強(qiáng)大的方法,可以得到類(lèi)的更多信息,比如:getSuperclass: 取得父類(lèi)的Class對(duì)象;getInterfaces: 取得實(shí)現(xiàn)的接口數(shù)組;還有其他很多方法。
本文地址:http://www.qingdxww.cn/thread-60385-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 利用模擬開(kāi)發(fā)工具生態(tài)系統(tǒng)進(jìn)行安全電路設(shè)計(jì)
  • 我們是Microchip
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開(kāi)發(fā)生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜久久精品 | 国产精品日韩欧美亚洲另类 | 这里只有精品视频 | 欧美bbbxxx| 国产精品久久久亚洲第一牛牛 | 国内视频一区 | 日日摸夜夜摸无需播放器 | 99这里只有精品在线 | 久久影院午夜伦手机不四虎卡 | 俺也来国产精品欧美在线观看 | h肉动漫在线观看 | 亚欧成人中文字幕一区 | 91视频一区二区三区 | 性欧美大战久久久久久久久 | 亚洲欧美日韩不卡一区二区三区 | 亚洲综合色婷婷 | 精品国内自产拍在线视频 | 一个人在线观看的www | 欧美第六页 | 久久精品加勒比中文字幕 | 伊人黄网| 日韩视频在线观看视频 | 日韩毛片大全 | 欧美精品xxx | 欧美在线精品永久免费播放 | 国产日韩91| 中文字幕一区二区在线视频 | 成人在线手机视频 | 欧美级| 国产又粗又爽又大又长免费视 | 国产成人福利在线视老湿机 | 四虎成人www国产精品 | h视频免费观看 | 在线观看国产黄色 | 色资源网 | 男性天堂 | 91麻豆国产香蕉久久精品 | 日本高清在线精品一区二区三区 | 在线观看91精品国产性色 | 国产黄色影视 | 午夜拍拍福利视频蜜桃视频 |