rubyオブジェクト学習例

2051 ワード

class Person
  attr_writer:info  ##       
  @@count = 0  ##    
  def initialize(name,age,gender)  ##    
    @name=name
    @age=age
    @gender=gender
    @info="#{name} #{age} #{gender}"
    @@count+=1
  end
  def info_ref
    @info
  end
  def info
    puts @info
  end
  def Person.getCount   ##    
    @@count
  end
end

class Derive < Person    ##  
  def info           ##  
    puts "derive"
    super
  end
end

people = Derive.new('jone',22,'female')
puts people.info

people1 = Derive.new('jone',22,'female')
class << people1   ##        
  def info
    puts "this is people1 method"
  end
end
puts people1.info
puts Person.getCount

puts Person.object_id  ##   ,            ,    object_id,                         
puts people.object_id
Object.class
Object.superclass


class ReTest ##ruby    ,             ,   undef_method         
  def meth
    puts "this is a method"
  end
end
retest = ReTest.new
retest.meth
class ReTest
  def meth
    puts "this is a another method"
  end
end
retest = ReTest.new
retest.meth
class ReTest
  undef_method(:meth)
end
obj = ReTest.new
obj.meth  


 
出力:
D:\software\Ruby192\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:/project/rubyDemo/test1.rb D:/project/rubyDemo/test1.rb:65:in `': undefined method `meth' for # (NoMethodError) derive     from -e:1:in `load' jone 22 female     from -e:1:in `
' this is people1 method 2 6597492 6597360 this is a method this is a another method Process finished with exit code 1