Junior
Μίλησε για τους τροποποιητές πρόσβασης στη Java.
sobes.tech AI
Απάντηση από AI
Οι τροποποιητές πρόσβασης ελέγχουν την ορατότητα των κλάσεων, μελών της κλάσης (πεδία, μεθόδους, κατασκευαστές) στη Java.
Υπάρχουν τέσσερις τροποποιητές πρόσβασης:
publicprotecteddefault(χωρίς τροποποιητή)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 των κλάσεων.