From: Nathan Viswa Date: 2007-12-01T03:54:47+09:00 Subject: Class method Need help to understand how the marked <<< def works. Thanks class Person def initialize(lname, fname) @lname = lname @fname = fname end def lname return @lname end def fname return @fname end def lname=(myarg) # see = <<< @lname = myarg end def fname=(myarg) @fname = myarg end end steve = Person.new("Litt", "Stove") print "My name is ", steve.fname, " ", steve.lname, ".\n" steve.fname = "Steve" print "My name is ", steve.fname, " ", steve.lname, ".\n" steve = Person.new("Litt", "Stove") print "My name is ", steve.fname, " ", steve.lname, ".\n" steve.fname = "Steve" print "My name is ", steve.fname, " ", steve.lname, ".\n" #steve.fname("Steve") # err #steve.lname("Nathan") # err ???? steve.lname() # print "My name is ", steve.fname, " ", steve.lname, ".\n" steve.lname = "Nat" # print "My name is ", steve.fname, " ", steve.lname, ".\n" steve.lname() # print "My name is ", steve.fname, " ", steve.lname, ".\n" I:\RubyNV>zzz-tut13-class.rb My name is Stove Litt. My name is Steve Litt. My name is Steve Litt. My name is Steve Nat. My name is Steve Nat. I:\RubyNV> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX if i use it stand alone it does not work!! class Person def initialize(lname) @lname = lname end def lname=(myarg) # see = <<< @lname = myarg end end steve = Person.new("Viswa") #puts steve.lname, 'x1' # err undefined methid lname #puts steve.lname(), 'x2' # err as above #puts steve.lname("nv"), 'x2' # err as above #steve.lname = "Nat" # #puts steve.lname, 'x2' # err undefined methid lname #puts steve.lname(), 'x3' # # err undefined methid lname #steve.lname = "Nat" # #print "My name is ", steve.lname, ".\n" #err #steve.lname() # err #print "My name is ", steve.lname, ".\n"# err -- Posted via http://www.ruby-forum.com/.