⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18 - controlling access by making methods private.rb

📁 O Reilly Ruby Cookbook source code
💻 RB
字号:
class SecretNumber  def initialize    @secret = rand(20)  end  def hint    puts "The number is #{"not " if secret <= 10}greater than 10."  end  private   def secret    @secret  endends = SecretNumber.news.secret# NoMethodError: private method `secret' called for #  #<SecretNumber:0xb7c2e83c @secret=19>s.hint# The number is greater than 10.#---class LessSecretNumber < SecretNumber  def hint    lower = secret-rand(10)-1    upper = secret+rand(10)+1    "The number is somewhere between #{lower} and #{upper}."  endendls = LessSecretNumber.newls.hint# => "The number is somewhere between -3 and 16."ls.hint# => "The number is somewhere between -1 and 15."ls.hint# => "The number is somewhere between -2 and 16."#---class MyClass  def public_method1  end  def public_method2  end  protected    def protected_method1  end  private  def private_method1  end  def private_method2  endend#---class LessSecretNumber  def compare(other)    if secret == other.secret    comparison = "equal to"     else      comparison = secret > other.secret ? "greater than" : "less than"    end    "This secret number is #{comparison} the secret number you passed in."  end  enda = LessSecretNumber.newb = LessSecretNumber.newa.hint# => "The number is somewhere between 17 and 22."b.hint# => "The number is somewhere between 0 and 12."a.compare(b)# NoMethodError: private method `secret' called for # #<LessSecretNumber:0xb7bfe13c @secret=6>#---class SecretNumber  protected :secretenda.compare(b)# => "This secret number is greater than the secret number you passed in."b.compare(a)# => "This secret number is less than the secret number you passed in."#---class MethodWithManySecrets  :private    # This method will show up in the RDoc, even though it's private.  def secret_method_1  end  # This method will not show up in the RDoc.  def secret_method_2 # :nodoc:  endend#---s.send(:secret)                                # => 19 #---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -