Private
Private functions can only be invoked in the context of this class and subclass, and can only be accessed by self.
This means that the private function can only be accessed within this object.
The access rights of an object instance variable (@) are private.
Copy Code code as follows:
Class Accesstest
def test
Return "Test Private"
End
def test_other (Other)
"Other object" + Other.test
End
End
T1 = accesstest.new
T2 = accesstest.new
P t1.test # => test Private
P T1.test_other (T2) # => other Object Test private
# now make ' test ' private
Class Accesstest
Private:test
End
P T1.test_other (T2) #错误 in ' test_other ': Private method ' Test ' called for #<accesstest:0x292c14> (Nomethoderror)
Protected
The Protect function can only be invoked in the context of this class and subclass, but it may use the form of other_object.function. (This is equivalent to C + + private mode)
The key is that the protected function can be used inside other objects of the same class (including subclasses).
# now make ' test ' protect
Class Accesstest
Protected:test
End
P T1.test_other (T2) # Other object Test private
Public
The public function can be invoked anywhere. The default access rights for member functions and constants are public.