წვდომის მოდიფიკატორები აკონტროლებენ კლასის წევრების ხილვადობას, ხელმისაწვდომობის შეზღუდვის მাშინებით კონკრეტულ მოქმედებაზე.
წვდომის მოდიფიკატორები აკონტროლებენ კლასის წევრების ხილვადობას, ხელმისაწვდომობის შეზღუდვის მাშინებით კონკრეტულ მოქმედებაზე.
| მოდიფიკატორი | ხელმისაწვდომი |
|---|
public | სადმე |
protected | კლასი და მისი ქვესკლასები |
private | მხოლოდ გამოცხადებული კლასის ფარგლებში |
public class Employee {
private double salary; // internal — only Employee touches it
protected String department; // subclasses may use it
public String name; // open to all
public double getSalary() { // controlled, public read access
return salary;
}
}
salary არის private, ამიტომ გარე კოდი არ შეგიძლია მას დაზიანოს; საჯაროო getter-ი არის ერთადერთი შესვლის ფანჯარა.
class Demo:
def __init__(self):
self.public = 1
self._protected = 2 # convention only ("don't touch")
self.__private = 3 # name-mangled to _Demo__private
Python-ს არ აქვს გაკრული private — ის ეყრდნობა სახელწოდების კონვენციებს. Java/C# ამძიმებენ მოდიფიკატორებს კომპილაციის დროს. Java-ს ასევე აქვს package-private (ნაგულისხმელი, без საკვანძო სიტყვა).
ყველაფრის public გაკეთება ხელმიდგმელობას აფუჭებს. დაიწყე ყველაზე შემზღუდავი დონით და გაფართოე მხოლოდ რეალური საჭიროების შემთხვევაში.
წვდომის მოდიფიკატორები არის ბეტონის ხელი, რომელიც კონკრეტულ მოქმედებას პრინციპიდან კომპილატორის მიერ შემოწმებულ წესად აქცევს.
მცირე საჯაროო ზედაპირი ნიშნავს, რომ ნაკლებმა კოდმა შეიძლება დამოკიდებული იყოს შიდა ლოგიკაზე, ამიტომ თავისუფლად შეგიძლია კოდის გადაკეთება მოწვევის ვარდების გარეშე.