2012-07-30 4 views
5

このset/getの何が問題になっていますか?同じ上さらにRubyクラスセット/取得

class Pupil 
    def name 
    @name 
    end 

    def name=(name) 
    @name = name 
    end 

    def age 
    @age 
    end 

    def age=(age) 
    @age 
    end 
end 

子クラスは3つの引数、名前、年齢、性別であった場合、セットには、セックスだけのために子供に方法になるだろう。あなたはset/getメソッドを表示し、子クラスで初期化してください。

+4

を提供するattr_accessorで設定/取得置き換えることによって、あなたのコードを美しくすることができます

def age=(age) @age = age end 

でなければなりません。 'age ='はそれが想定していることをしません。 –

+0

Sergio Tulentsevありがとうございました。 – Selvam

答えて

13
def age=(age) 
    @age 
    end 

あなたはまた、自身が `name`のは結構ですゲッター/セッター

class Pupil 
    attr_accessor :age,:name 
end 
+0

@Selvam、どうぞ! – PriteshJ

+0

PriteshJ。ありがとうございました。私はそれを解決した。 (実際は、元の質問に追加の質問を編集します。) – Selvam

+0

OK、 'attr_accessor'は私が探していたものです。 Rubyを習う人として公式文書のどこにこの情報がありますか?私はhttp://ruby-doc.org/を見てきましたが、これは 'Module'(これは' Class'ではなく)でほとんど言及されておらず、プロパティ、ゲッター、セッターなどの言葉も言及していません...そこからこれらの概念を学ぶのは難しいです。基本的には、公式のPythonチュートリアル(https://docs.python.org/3/tutorial/)のRubyに相当するものを探しています。 – metakermit

1

@age = ageを設定していません。

+0

Phil Aquilinaありがとうございました。 – Selvam

関連する問題