Created
April 16, 2018 21:04
-
-
Save PsixokoT/65e97524e375c7e7e9464766e31ea2c6 to your computer and use it in GitHub Desktop.
why self private method different private setter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Example | |
def initialize(name) | |
@name = name | |
end | |
def test_equal_private(ex) | |
self.private_property == ex.private_property | |
end | |
def test_equal_protected(ex) | |
self.protected_property == ex.protected_property | |
end | |
def private_setter(value) | |
self.private_property = value | |
end | |
def private_getter_print | |
puts private_property | |
end | |
def print_name | |
puts @name | |
end | |
private | |
def private_property | |
@name | |
end | |
def private_property=(value) | |
@name = value | |
end | |
protected | |
def protected_property | |
@name | |
end | |
def protected_property=(value) | |
@name = value | |
end | |
end | |
e1 = Example.new('e1') | |
e2 = Example.new('e2') | |
# puts e1.test_equal_private(e2) #(NoMethodError) | |
puts e1.test_equal_protected(e2) #false | |
e1.private_setter('wtf') | |
e1.print_name() | |
e1.private_getter_print() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment