Sobes.tech
Junior

Proqramlaşdırma dillərində 'protected' giriş modifikatoru necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Giriş modifikatoru protected aşağıdakı hallarda sinif üzvünə (sahə, metod və ya xüsusiyyət) giriş imkanı verir:

  • Bu üzvün elan olunduğu sinifdən.
  • Törəmə siniflərdən (alt siniflər).
  • Bəzi dillərdə (məsələn, Java) - eyni paketdəki bütün siniflərdən.

Dillərə görə tətbiq edilə bilmə:

  • Java: Paket daxilində və hər hansı paketdəki törəmə siniflərdə mövcuddur.
  • C#: Sinif daxilində və törəmə siniflərdə mövcuddur. Həmçinin protected internal birləşməsi də mövcuddur; bu, yığma daxilində və törəmə siniflərdə giriş imkanı verir (başqa yığmalardakı törəmə siniflər daxil olmaqla).
  • C++: Sinif daxilində və törəmə siniflərdə mövcuddur.
  • Python: Qəti protected yoxdur. Qoruma üçün nəzərdə tutulmuş üzvlər adətən başlanğıcda tək alt xətt (_) ilə adlandırılır, bu bir konvensiyadır və sərt giriş məhdudiyyəti deyil.

Nümunə (Java):

class Parent {
    protected int protectedField;

    protected void protectedMethod() {
        // ...
    }
}

class Child extends Parent {
    public void accessProtected() {
        this.protectedField = 10; // Törəmə sinifdən giriş
        this.protectedMethod(); // Törəmə sinifdən giriş
    }
}

class AnotherClassInSamePackage {
    public void accessProtected(Parent p) {
        p.protectedField = 20; // Eyni paketdən giriş
        p.protectedMethod();   // Eyni paketdən giriş
    }
}

class AnotherClassInDifferentPackage {
    // Birbaşa protected üzvlərə giriş yoxdur
    // yalnız törəmə sinifdirsə
}

protected irsi həyata keçirmək üçün geniş istifadə olunur, bu da törəmə siniflərin valideyn sinifin funksionallığını genişləndirməsinə imkan verir və eyni zamanda onların daxili detalları xarici dünyadan gizləyir.