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

首頁 > 編程 > Ruby > 正文

Ruby中類變量和實例變量的區別

2020-02-24 15:37:54
字體:
來源:轉載
供稿:網友

在Ruby中,類實例方法、類變量和類方法之間的區別是很細微的,并且用法也有很大的不同,本文是武林技術頻道小編和大家分享的Ruby中類變量和實例變量的區別。

1、類變量名以@@開始,一個類變量被這個類所有的實例對象共享;實例變量名以@開始,每個實例對象有各自不同的實例變量;

2、類變量在使用前必須初始化,否則在使用時會報錯;而實例變量如果沒有初始化,則使用時返回nil;

3、類變量是私有的,在類外無法直接訪問,可以通過類方法和實例方法訪問;

?

復制代碼 代碼如下:

class B
??? @@number = 11
??? @@num = 22
?
??? def my_method????? #定義實例方法
??????? puts @@number
??? end
?
??? def self.my_method? #定義類方法
??????? puts @@num
??? end
end
?
b = B.new()
puts b.my_method() #通過實例方法訪問類變量? => 11
puts B.my_method() #通過類方法訪問類變量??? => 22

?

4、實例變量也是私有,無法在類外直接引用,可以通過類方法和實例方法訪問;

?

復制代碼 代碼如下:

class B
????? @num? = 11??? #實際上這是“類的實例變量”
????? @test = 22
????? def my_method????? #定義實例方法
????????? puts @num = 33 #跟前面定義的@num不在一個作用域?? =>33
????????? puts @test???? #跟前面定義的@test不在一個作用域里,未賦初值,因此返回nil?
????????? puts @new = 567? #在實例運行my_method時才定義的實例變量 =>567
????? end
????? def self.my_method????? #定義類方法
???????? puts @num??????? #這里的@num就是前面定義過的@num? =>11
???????? puts @test?????? # =>22
???? end
?end
?
?b = B.new()
?
?b.my_method
?puts "--------------------"
?B.my_method

看了上面的介紹,相信大家對于Ruby中類變量和實例變量的區別,已經有了自己的認識。所以我們在學習內容的時候要認真,這樣能提高我們在工作中的效率,希望大家能繼續支持武林技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阜南县| 克拉玛依市| 眉山市| 财经| 洮南市| 肇东市| 白水县| 文登市| 汨罗市| 灵璧县| 大方县| 政和县| 金平| 许昌县| 安平县| 炎陵县| 洪泽县| 理塘县| 黑龙江省| 锦屏县| 开远市| 临高县| 洪雅县| 惠东县| 邵东县| 蚌埠市| 丰城市| 常熟市| 运城市| 汽车| 波密县| 韶山市| 婺源县| 叶城县| 胶州市| 宣汉县| 罗定市| 长泰县| 中牟县| 惠州市| 全椒县|