Object#methods の出力が protected メソッドも含むこと(Ruby)

Object#protected_methods もありますけれど。

class A
  def hello
    A.new.x
  end
  
  def x; puts "hello"; end
  protected :x
end

a = A.new
p a.methods              #=>[:hello, :x, :nil?, ...]
p a.protected_methods    #=>[:x]
a.hello                  #=>"hello"
a.x
#=>protected method `x' called for #<A:**> (NoMethodError)

参考:
class Object (Ruby 2.2.0)