Sobes.tech
Junior

Μίλησε για τους τροποποιητές πρόσβασης στη Java.

sobes.tech AI

Απάντηση από AI

Οι τροποποιητές πρόσβασης ελέγχουν την ορατότητα των κλάσεων, μελών της κλάσης (πεδία, μεθόδους, κατασκευαστές) στη Java.

Υπάρχουν τέσσερις τροποποιητές πρόσβασης:

  • public
  • protected
  • default (χωρίς τροποποιητή)
  • private

Η ορατότητά τους σε διάφορα πλαίσια:

Τροποποιητής Μέσα στην κλάση Μέσα στο πακέτο Σε υποκλάση (σε οποιοδήποτε πακέτο) Παντού
private Ναι Όχι Όχι Όχι
default Ναι Ναι Όχι Όχι
protected Ναι Ναι Ναι Όχι
public Ναι Ναι Ναι Ναι

Παραδείγματα χρήσης:

public class Parent {

    private int privateField;       // Διαθέσιμο μόνο μέσα στην κλάση Parent
    int defaultField;              // Διαθέσιμο μέσα στο πακέτο
    protected int protectedField;   // Διαθέσιμο μέσα στο πακέτο και σε υποκλάσεις
    public int publicField;         // Διαθέσιμο παντού

    private void privateMethod() {} // Διαθέσιμο μόνο μέσα στην κλάση Parent
    void defaultMethod() {}        // Διαθέσιμο μέσα στο πακέτο
    protected void protectedMethod() {} // Διαθέσιμο μέσα στο πακέτο και σε υποκλάσεις
    public void publicMethod() {}   // Διαθέσιμο παντού
}
package another_package;

import some_package.Parent;

public class Child extends Parent {

    void accessFields() {
        // privateField = 10; // Σφάλμα: ιδιωτικό
        defaultField = 20;   // Σφάλμα: default (σε άλλο πακέτο)
        protectedField = 30; // Διαθέσιμο: protected (σε υποκλάση)
        publicField = 40;    // Διαθέσιμο: public
    }

    void accessMethods() {
        // privateMethod(); // Σφάλμα: ιδιωτικό
        // defaultMethod(); // Σφάλμα: default (σε άλλο πακέτο)
        protectedMethod(); // Διαθέσιμο: protected (σε υποκλάση)
        publicMethod();  // Διαθέσιμο: public
    }
}

Οι τροποποιητές χρησιμοποιούνται για εν encapsulation και διαχείριση του API των κλάσεων.