プロを目指す人のためのRuby入門 その11
第7章 クラスの作成を理解する
今回からクラスの継承について学びます。
この本よりも深くオブジェクト指向について学ぶには、
オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
- 作者: Sandi Metz,?山泰基
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/02
- メディア: 大型本
- この商品を含むブログ (6件) を見る
を参考にするようです。
オブジェクトのクラスの確認
オブジェクトのクラスを確認します。
class Product end product = Product.new p product.instance_of?(Product) # true
継承
クラスを継承を行います。
class Product attr_reader :name, :price def initialize(name, price) @name = name @price = price end end class DVD < Product # name, price はスーパークラスで定義されているので不要 attr_reader :running_time def initialize(name, price, running_time) # スーパークラスにも存在している属性 super(name, price) # DVD クラス独自の属性 @running_time = running_time end end
メソッドの公開レベル
Ruby のメソッドには、public, protected, private の三つの公開レベルがあります。インスタンスメソッドはデフォルトで public です。
private メソッドはクラス外から呼び出すことができません。
class User private def hello 'Hello' end end user = User.new p user.hello # privateメソッドなのでクラス外から呼び出せない
また、private メソッドは内部クラスからも呼び出すことができます。
本
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
感想
メソッドやクラスの公開レベルの違いは言語によって少し異なることが分かりました。