私は姓と名を持つユーザークラスを作成しています。あるサブクラスのインスタンス変数を別のサブクラスに使用する
class User
attr_accessor :first_name, :last_name
end
次に、私は知識を教えるための教師クラスを作成しました。
require_relative "./user.rb"
class Teacher < User
attr_accessor :string1
def initialize
@string1 = string1
end
KNOWLEDGE = ["a String is a type of data in Ruby", "programming is hard, but it's worth it", "javascript async web request", "Ruby method call definition", "object oriented dog cat class instance", "class method class variable instance method instance variable", "programming computers hacking learning terminal", "bash Ruby rvm update certs"]
def teach
@string1 = KNOWLEDGE.sample
end
end
最後に、追加された機能を備えたユーザークラスと教師クラスの機能にアクセスするための学生クラスを作成しました。
require_relative "./user.rb"
require_relative "./teacher.rb"
class Student < User
attr_accessor :knowledge
def initialize
@knowledge = []
end
def learn(string1)
@knowledge.push(@string1)
end
end
学生クラスは、@ variable1というインスタンス変数を取ってナレッジ配列にプッシュすることをお勧めします。どういうわけか、それは私がそれをすべきであるように動作していない。
また、私は学生と教師がいるこのbinファイルを持っています。それで知識配列を見ようとすると、応答しません!
#!/usr/bin/env ruby
require_relative "../lib/user.rb"
require_relative "../lib/teacher.rb"
require_relative "../lib/student.rb"
hima = Student.new
hima.first_name = "Hima"
hima.last_name = "Chhag"
pooja = User.new
pooja.first_name = "Pooja"
pooja.last_name = "Jeckson"
trushal = Teacher.new
trushal.first_name = "Trushal"
trushal.last_name = "Chitalia"
some_knowledge = trushal.teach
hima.learn(some_knowledge)
puts "Hima just learned this important knowledge: '#{hima.knowledge[0]}' from Trushal"
some_knowledge = trushal.teach
hima.learn(some_knowledge)
puts "Hima just learned this important knowledge: '#{hima.knowledge[1]}' from Trushal"
hima.knowledge
誰かが私のコードで何が問題なのかを知る手助けができたら本当に感謝します!
ありがとうございます。はい、あなたは正しいです。私はインスタンス変数を共有しようとしていました。しかし、あなたのポイントを得ました。 :-) –