اصلاحکنندههای دسترسی در روبی
public، private و protected برای کنترل دسترسی متدها در روبی
سطوح دسترسی
روبی سه سطح دسترسی برای متدها دارد:
| سطح | توضیح |
|---|---|
public | همهجا قابل دسترسی |
private | فقط داخل همان کلاس (با self ضمنی) |
protected | داخل کلاس و کلاسهای فرزند |
public (پیشفرض)
class User
def greet
"سلام!"
end
end
puts User.new.greet # => سلام!
private
class User
def initialize(name)
@name = name
end
def display
"نام: #{format_name}" # فراخوانی متد خصوصی
end
private
def format_name
@name.upcase
end
end
u = User.new("ali")
puts u.display # => نام: ALI
# puts u.format_name # => ❌ خطا! private است
protected
class Account
def initialize(balance)
@balance = balance
end
def compare(other)
if balance > other.balance
"بیشتر"
else
"کمتر یا مساوی"
end
end
protected
attr_reader :balance
end
a1 = Account.new(500)
a2 = Account.new(300)
puts a1.compare(a2) # => بیشتر
خلاصه
public— همهجا (پیشفرض)private— فقط داخل کلاسprotected— داخل کلاس و فرزندان
این مبحث بخشی از دوره آموزش کامل روبی است.