Sobes.tech
Junior

Pasakokite apie prieigos modifikatorius Java kalboje.

sobes.tech AI

Atsakymas iš AI

Prieigos modifikatoriai valdo matomumą Java klasėse ir jų narių (laukeliai, metodai, konstruktoriai) matomumą.

Yra keturi prieigos modifikatoriai:

  • public
  • protected
  • default (be modifikatoriaus)
  • private

Jų matomumas skirtinguose kontekstuose:

Modifikatorius Klasės viduje Paketo viduje Pusiau paveldėtuose (bet kuriame pakete) Visur
private Taip Ne Ne Ne
default Taip Taip Ne Ne
protected Taip Taip Taip Ne
public Taip Taip Taip Taip

Pavyzdžiai:

public class Parent {

    private int privateField;       // Tik Parent klasėje
    int defaultField;              // Pakete
    protected int protectedField;   // Pakete ir paveldėtuose
    public int publicField;         // Visur

    private void privateMethod() {} // Tik Parent klasėje
    void defaultMethod() {}        // Pakete
    protected void protectedMethod() {} // Pakete ir paveldėtuose
    public void publicMethod() {}   // Visur
}
package another_package;

import some_package.Parent;

public class Child extends Parent {

    void accessFields() {
        // privateField = 10; // Klaida: private
        defaultField = 20;   // Klaida: default (kito paketo)
        protectedField = 30; // Pasiekiama: protected (paveldėtuose)
        publicField = 40;    // Pasiekiama: public
    }

    void accessMethods() {
        // privateMethod(); // Klaida: private
        // defaultMethod(); // Klaida: default (kito paketo)
        protectedMethod(); // Pasiekiama: protected (paveldėtuose)
        publicMethod();  // Pasiekiama: public
    }
}

Modifikatoriai naudojami inkapsuliacijai ir API valdymui.