国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby中的反射(Reflection)應用實例

2019-10-26 19:23:14
字體:
來源:轉載
供稿:網友

在Java語言中,提供了發射機制,通過發射機制可以通過字符串構造出這個對象,可以獲取對象的所有方法(包括私有方法),可以調用私有方法,可以更改成員變量的值(包括私有的成員變量)。
Ruby也是面向對象的高級語言,當然也提供了反射機制,今天我們討論通過類名稱構造類對象的功能。

一、通過類名稱構造類對象

我們先看普通的構造:

代碼如下:
module ModuleA

    #the class name, later we will use it to create the corresponding object

    CLASS_NAME_OF_WOOD = "ModuleA::Wood"

    CLASS_NAME_OF_WOODDESK = "ModuleA::WoodDesk"

    CLASS_NAME_OF_WOODCHAIR = "ModuleA::WoodChair"


    class Wood

        def initialize

            @desc = "I am a primal wood"

        end


        def say

            puts @desc

        end

    end


    class WoodDesk < Wood

        def initialize

            @desc = "I am a desk made of wood"

        end


        def say_private

            puts "actually, i have some bug but no public"

        end


        public :say

        private :say_private


    end


    class WoodChair < Wood

        def initialize

            @desc = "I am a chair made of wood"

        end


        def say_private

            puts "I Want get married with a WoodDesk..."

        end


        def smile

            puts "ha hah hah haha ...."

        end


        public :say

        private :say_private, :smile

    end

end

定義了一個基礎類Wood,有兩個子類:WoodDesk, WoodChair,子類有分別有一個私有方法 say_private。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沾益县| 新宾| 太湖县| 合阳县| 武平县| 淅川县| 北京市| 正安县| 阿坝| 安塞县| 磴口县| 行唐县| 中阳县| 抚顺县| 霍州市| 安泽县| 吐鲁番市| 和田市| 襄樊市| 迁安市| 调兵山市| 遂宁市| 金寨县| 东乡族自治县| 安徽省| 阿拉善盟| 清水县| 和田县| 府谷县| 榕江县| 昭觉县| 城口县| 冕宁县| 闽侯县| 长丰县| 馆陶县| 鹤山市| 江山市| 镇平县| 台前县| 石景山区|