-- coding: utf-8 --
Student クラスを作る
class Student
#Studentクラスのインスタンスを初期化する
def initialize( name, age )
@name = name
@age = age
end
# Studentクラスのインスタンスの文字列表現を返す def to_s "#@name, #@age" end
end
StudentBookアプリケーションのインスタンスを作る
class StudentBook
def initialize
@students = {}
end
# ハッシュにStudentクラスのインスタンスを複数作成する def setUpstudents @students = {#studentをインスタンス変数に変更 :shin => Student.new( "Shin kuboaki", 45 ), :shinichirou => Student.new( "shinichirou Ooba", 35), :shingo => Student.new( "Shingo Katori", 30) } end # すべてのインスタンスの年齢と名前を表示する # 処理を手続きにする def printStudents @students.each { |key, value| #studentsをインスタンス変数に変更 puts "#{key} #{value.to_s}" } end # StudentBookが保存しているデータをリストする def listAllStudents # Studentクラスのインスタンスを作成 setUpStudents # Studentクラスのインスタンスの表示 printstudents end
end
StudentBookクラスのインスタンスを作成する
student_book = StudentBook.new
Studentクラスのインスタンスの表示
student_book.listAllStudents
このプログラムを走らせると
ex1302.rb:42:in listAllStudents': undefined local variable or method
setUpStudents' for #<StudentBook:0x27a4088 @students={}> (NameError)
from ex1302.rb:52:in `<main>'
というエラーが出てうまく起動しません
42行目と52行目を参考書の通りに修正したのですが、改善されません。
どのあたりが間違ってるか、正しくはどう書くのか、宜しければ教えていただけませんか?
お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/05 13:54