日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

04/28/2010 类,对象,变量

發(fā)布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 04/28/2010 类,对象,变量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

表示歌曲的Ruby類,歌曲(名字,演唱者,時長)

?

在Ruby程序中,initialize是一個特殊的方法。

當(dāng)調(diào)用Song.new創(chuàng)建一個新的Song對象時,Ruby首先分配一些內(nèi)存來保存未初始化的對象,然后調(diào)用對象的initialize方法,并把調(diào)用new時所使用的參數(shù)傳入該方法。

?

每個對象都表示自己對應(yīng)的歌曲,因此需要每個Song對象帶有自己的歌曲名,演唱者和時長,所以需要將這些值作為實例變量保存在對象中。

?

對象內(nèi)的所有方法都可以訪問實例變量,每個對象都有實例變量的一份拷貝。

?

class Song

? def initialize(name, artist, duration)??????????? #接收3個參數(shù),參數(shù)以小寫字母開頭

? @name????? = name????????????????????????????????? #實例變量由@符開頭的名字,參數(shù)name被賦值給實例變量@name

? @artist????? = artist?????????????????????????

? @duration? = duration

? end

end

song = Song.new(“l(fā)ove”, "nikey”, 250)

song.inspect???????????????? -->#<Song:0x3067054 @artist="nikey", @duration=250, @name="love">

?

inspect方法:可以發(fā)送給任何對象,默認(rèn)將對象的ID和實例變量格式化。

標(biāo)準(zhǔn)消息to_s: 可以發(fā)送給任何一個想要輸出字符串表示的對象。

song = Song.new("love", "nikey", 250)

puts song.to_s??????????? --> #<Song:0x326705c>,只報告了對象的ID

?

Override Song類中的to_s方法:

class Song

? def initialize(name, artist, duration)

? @name???? = name

? @artist???? = artist

? @duration = duration

? end

?

? def to_s

??? "Song: #@name -- #@artist (#@duration)"???????????????????? -- 使用#字符將3個實例變量的值插入到字符串中。

? end

end

song = Song.new("love", "nikey", 250)
puts song.to_s???????????????????????????????????????????????????????????????? -- 結(jié)果:Song: love -- nikey (250)

在Ruby中,類永遠(yuǎn)都不是封閉的,總可以向一個已有的類中添加方法。適用于自己編寫的類,同樣適用于標(biāo)準(zhǔn)的內(nèi)建類。

轉(zhuǎn)載于:https://www.cnblogs.com/nikeylee/articles/1722745.html

總結(jié)

以上是生活随笔為你收集整理的04/28/2010 类,对象,变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。