Private
Private functions can only be called in the context of the class and subclass, and can only be accessed through self.
This means that the private function can only be accessed within the object.
The access permission of the object instance variable (@) is private.
Copy codeThe Code is 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) # error in 'test _ other ': private method 'test' called for # <AccessTest: 0x292c14> (NoMethodError)
Protected
The protect function can only be called in the context of the class and subclass, but can be in the form of other_object.function. (This is equivalent to the private mode of C ++)
The key is that the protected function can be used inside other objects of the same type (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 called anywhere. The default access permission for member functions and constants is public.