資料封裝

 

※ 說明 : 舉凡物件變數(@開頭)、類別變數(@@開頭)都是存於lib中
■ 題型 :  資料封裝  練習
◎ 參圖 : notepad打上下列內容 > 存 cio.rb
□  class Person
□      def initialize(name)
□          @name = name
□      end
□  end

□  p = Person.new(‘ihower’)
□  p.name
□  => NoMethodError
□  p.name=’peny’
□  => NoMethodError
022-05a
◎ 參圖 : 開DOS模式 > ruby  cio.rb  > 執行結果不正確
022-05b

※ 說明 : 欲存取到@name,需定義方法
■ 題型 :  存取類別方法   練習
◎ 參圖 : notepad打上下列內容 > 存 Person.rb
□  class Person

□     def initialize(name)
□      @name = name
□     end

□     def name
□       @name
□     end

□     def name=(name)
□       @name = name
□     end
□  end

□  p = Person.new(‘ihower’)
□  p.name
□  => “ihower"
□  p.name="peny"
□  => “peny"
Person-a
◎ 參圖 : 開DOS模式 > ruby  Person.rb  > 執行結果不正確
Person-b

★◎ 後記: 作者回覆「=> NoMethodError  不是程式碼,拿掉這兩行就可以了」,但…不懂用意究竟為何?

ciog-eb