Ruby的成员访问修饰关键字分为三种,与c#一样。
1 private 只能为该对象所调用的方法
2 protected 只能为该对象及其子对象所调用的方法
3 public 可以让任何对象所调用的方法
与c#不同的是,ruby的访问修饰符从定义处开始起作用,直到下一个访问修饰符出现时终止,比如
class Greeter
def initialize
end
private
def sayhi()
puts "hi"
end
def saybye()
puts "bye"
end
public
def say()
sayhi
saybye
end
end
g = Greeter.new
g.say # output hi bye
g.sayhi # error because the sayhi isn't publics member
def initialize
end
private
def sayhi()
puts "hi"
end
def saybye()
puts "bye"
end
public
def say()
sayhi
saybye
end
end
g = Greeter.new
g.say # output hi bye
g.sayhi # error because the sayhi isn't publics member
initialize默认就是private的 其他方法默认是public的 成员变量和类变量默认是private的 要用attr_reader或attr_accessor来增加读写控制