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

首頁 > 編程 > Ruby > 正文

ruby 學習筆記(2) 類的基本使用

2020-10-29 19:46:25
字體:
來源:轉載
供稿:網友
ruby語言跟c#的一些重要差別在于:
1.ruby是動態語言,c#是靜態語言--即對象在new出來以后,ruby還可以動態給對象實例添加一些屬性或方法(javascript也是如此)
2.ruby中刻意弱化了變量類型這個概念,默認情況下變量/方法都不需要聲明具體(返回)類型,但其實在ruby內部,會自動根據變量的值分配類型。(可以通過 “puts 變量.class“查看)
3.ruby相對c#來講,可能有些雷的地方在于:父類中的private成員,居然是可以在子類中使用的!
...其它地方,等學習深入了再寫出來
最后上一段測試代碼,展示了ruby中類的基本用法:
復制代碼 代碼如下:

class People #跟javascript這類動態語言一樣,ruby中的類也沒有public,private這類訪問控制標識符

    def initialize(_name) #構造函數,名字是固定:initialize
        @name = _name; #約定:類的私有變量以@開頭
    end

    def to_string #類似C#中的做法,這里寫一個ToString方法的ruby版
        "My name is #{@name}" #ruby中方法最后一行的值,會被當作函數值返回
    end

    def get_name_size
        return @name.length #這個方法中返回的是數字型(即名稱的長度)
    end

    def test #類定義的最后部分,把這個方法標記為私有方法了
        puts "private method(test) in People."
    end

    def show_name
        test #私有方法,可在內部調用
        puts "name = #{@name}"
    end

    attr_accessor:name #定義一個可讀寫的屬性,這里也體現了ruby的一個重要思想:約定重于規范,因為@name在之前已經使用過,這里的屬性只需要把@去掉,ruby就會自動智能的生成類似c#中 set{value = @name},get{return @name}的語句

    private:test #標明test方法是private屬性的
    protected:get_name_size #標明get_name_size只能在本類或子類定義中使用(或者在子類定義中賦值給子類實例)

end
aPeople = People.new("jimmy");#創建一個People的實例
puts aPeople.to_string #調用to_string方法
#puts aPeople.get_name_size #將報錯,因為該方法受保護
#puts aPeople.test #將報錯,因為該方法是私有方法
aPeople.show_name
puts aPeople.name
aPeople.name = "楊俊明" #修改姓名
aPeople.show_name
#再定義一個子類
class Man < People    
    def initialize(_name)
        super
        @sex = true
    end    

    attr_reader:sex #定義只讀屬性sex

    def call_protected_method
        puts get_name_size #調用父類的受保護方法
    end

    def call_protected_method2(man1)
        puts man1.get_name_size #注意這里:這里可以把父類的受保護方法,動態添加到子類實例
    end

    def call_private_method #子類可以調用父類的私有方法!!! 這一點剛開始很不習慣
        test
    end

    def call_private_method2(man1)
        man1.test #注意這里:語法檢查雖然可以通過,但是運行時會提示私有方法無法調用,這也是private與protected的區別
    end

    
end
puts "******************************"
aMan = Man.new("jimmy.yang");
aMan.show_name
aMan.call_protected_method
puts aMan.sex
aMan.call_private_method
aMan2 = Man.new("Mike")
aMan.call_protected_method2(aMan2);
#aMan.call_private_method2(aMan2);
a = "abc";
#aMan.call_protected_method2(a); #雖然ruby本身對變量沒有類型概念,但是這樣卻不行,即:在調用父類的受保護方法時,其實是要類型匹配的
puts aMan.class #顯示aMan的類名稱

運行結果如下:
復制代碼 代碼如下:

>ruby classDemo.rb
My name is jimmy
private method(test) in People.
name = jimmy
jimmy
private method(test) in People.
name = 楊俊明
******************************
private method(test) in People.
name = jimmy.yang
10
true
private method(test) in People.
4
Man
>Exit code: 0

作者:菩提樹下的楊過
出處:http://yjmyzz.cnblogs.com
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本午夜在线亚洲.国产| 国产在线精品一区免费香蕉| 91久久久久久久| 91亚洲国产成人久久精品网站| 国产成人97精品免费看片| 欧美在线性爱视频| 亚洲肉体裸体xxxx137| 亚洲人成免费电影| 成人a免费视频| 中文字幕亚洲一区二区三区| 精品久久久精品| 日韩一区二区三区xxxx| 中文字幕欧美精品在线| 国产综合在线观看视频| 欧美日韩免费区域视频在线观看| 久久久久久久一区二区三区| 日韩在线播放视频| 黑人精品xxx一区一二区| 国产欧美va欧美va香蕉在| 亚洲电影免费观看| 国产精品第七十二页| 国产69精品久久久久久| 亚洲精品久久久久中文字幕二区| 美女视频黄免费的亚洲男人天堂| 国产欧美一区二区白浆黑人| 午夜精品一区二区三区在线视| 亚洲欧美在线一区二区| 亚洲欧美国产一本综合首页| 热久久这里只有| 在线电影av不卡网址| 最近的2019中文字幕免费一页| 久久久国产精品视频| 久热精品在线视频| 久热国产精品视频| 亚洲美女在线观看| 国产精品日韩欧美大师| 国产精品劲爆视频| 亚洲精品久久视频| 国产一区二区日韩精品欧美精品| 国产va免费精品高清在线观看| 欧美视频在线视频| 国产suv精品一区二区三区88区| 亚洲国产精品成人精品| 亚洲综合小说区| 精品自在线视频| 亚洲成人激情视频| 尤物tv国产一区| 91成人在线播放| 中文字幕视频在线免费欧美日韩综合在线看| 欧美精品在线网站| 国产综合久久久久| 欧美精品成人91久久久久久久| 5566成人精品视频免费| 国产精品福利小视频| 伊人久久男人天堂| 成人免费看黄网站| 这里只有视频精品| 欧美国产日韩一区| 日本91av在线播放| 色狠狠av一区二区三区香蕉蜜桃| 色偷偷av一区二区三区乱| 性金发美女69hd大尺寸| 欧美成人中文字幕| 日韩专区在线播放| 国产精品三级美女白浆呻吟| 日韩中文在线观看| 黑人巨大精品欧美一区二区三区| 欧美日韩在线看| 日本中文字幕成人| 91精品一区二区| 不卡在线观看电视剧完整版| 55夜色66夜色国产精品视频| 97成人精品视频在线观看| 国产精品成人v| 亚洲欧洲xxxx| 88国产精品欧美一区二区三区| 黄色成人在线播放| 最近2019中文免费高清视频观看www99| 日韩欧美高清在线视频| 国产精品99一区| 日韩精品免费在线视频| 成人av资源在线播放| 久久影视电视剧免费网站| 欧美高清电影在线看| 国产国产精品人在线视| 中文字幕亚洲无线码在线一区| 最新国产精品拍自在线播放| 国产精品久久久久久久久久99| 色多多国产成人永久免费网站| 国产精品入口福利| 日韩精品中文字幕久久臀| 亚洲综合中文字幕在线| 成人免费观看49www在线观看| 91精品国产91久久久久福利| 92看片淫黄大片看国产片| 日本高清视频精品| 欧美丰满少妇xxxxx做受| 欧美小视频在线| 国产精品女人久久久久久| 欧美日韩中文字幕在线视频| 亚洲欧美日韩另类| 久久亚洲私人国产精品va| 精品美女国产在线| 社区色欧美激情 | 中文字幕av一区中文字幕天堂| 欧美一区二区三区免费观看| 欧美视频国产精品| 九九视频这里只有精品| 日韩在线精品视频| 国产精品视频永久免费播放| 国产一区二区三区视频在线观看| 中文字幕欧美精品在线| 色诱女教师一区二区三区| 亚洲男女自偷自拍图片另类| 欧美丰满少妇xxxxx| 精品女厕一区二区三区| 国产69精品久久久久9| 91久久嫩草影院一区二区| 日韩极品精品视频免费观看| 亚洲天堂男人的天堂| 毛片精品免费在线观看| 欧美日韩中文字幕综合视频| 一区三区二区视频| 久久精品色欧美aⅴ一区二区| 国内精品久久久久久中文字幕| 亚洲第一网站男人都懂| 亚洲综合社区网| 日韩精品久久久久久久玫瑰园| 姬川优奈aav一区二区| 欧美日韩国产中字| 精品成人国产在线观看男人呻吟| 精品亚洲夜色av98在线观看| 国产一级揄自揄精品视频| 久久这里有精品视频| 中文字幕日本欧美| 成人精品一区二区三区电影免费| 日韩av大片在线| 亚洲精品综合久久中文字幕| 国产日韩欧美夫妻视频在线观看| 狠狠色香婷婷久久亚洲精品| 亚洲free性xxxx护士白浆| 午夜精品一区二区三区在线视频| 九九精品在线播放| 欧美最猛性xxxxx亚洲精品| 色偷偷噜噜噜亚洲男人| 国产精品香蕉av| 国产裸体写真av一区二区| 国产视频精品免费播放| 亚洲性夜色噜噜噜7777| 日本一区二区在线免费播放| 国语自产精品视频在线看抢先版图片| 国产成人av在线播放| 777国产偷窥盗摄精品视频| 欧美日韩在线视频观看| 日韩中文字幕视频在线观看| 欧美日韩另类在线| 欧美极品美女电影一区| 亚洲人成网站在线播| 国产精品视频免费在线观看| 国产精品久久久久久五月尺| 欧美日韩国产一区二区| 成人黄色中文字幕| 国产一区二区三区视频免费| 日韩精品视频免费在线观看|