Junior
Τι σημαίνει η λέξη-κλειδί 'final' στη γλώσσα προγραμματισμού Java;
sobes.tech AI
Απάντηση από AI
Η λέξη-κλειδί final στη Java χρησιμοποιείται για να δηλώσει ότι μια μεταβλητή, μέθοδος ή κλάση δεν μπορούν να τροποποιηθούν.
-
Μεταβλητή
final:- Μια μεταβλητή που δηλώνεται ως
finalμπορεί να της αποδοθεί τιμή μόνο μία φορά. Μετά την αποδοχή, δεν μπορεί να αλλάξει. - Για τους πρωταρχικούς τύπους δεδομένων, η τιμή μιας
finalμεταβλητής είναι μια σταθερά. - Για τους αναφορικούς τύπους δεδομένων, το
finalσημαίνει ότι η αναφορά στο αντικείμενο δεν μπορεί να αλλάξει, αλλά η κατάσταση του αντικειμένου (τα πεδία του) μπορεί να τροποποιηθεί (εκτός αν τα πεδία του αντικειμένου είναι και αυτάfinal).
final int MAX_VALUE = 100; // τελική πρωταρχική μεταβλητή final List<String> names = new ArrayList<>(); // τελική αναφορική μεταβλητή names.add("Alice"); // ΟΚ // names = new ArrayList<>(); // Σφάλμα μεταγλώττισης - δεν μπορεί να επαναπροσδιοριστεί η αναφορά - Μια μεταβλητή που δηλώνεται ως
-
Μέθοδος
final:- Μια μέθοδος που δηλώνεται ως
finalδεν μπορεί να υπερισχύσει σε υποκλάσεις. - Αυτό χρησιμοποιείται για να αποτρέψει ανεπιθύμητες αλλαγές στη συμπεριφορά στην κληρονομική ιεραρχία.
class Parent { final void display() { System.out.println("Αυτή είναι μια τελική μέθοδος."); } } class Child extends Parent { // @Override void display() { } // Σφάλμα μεταγλώττισης - δεν μπορεί να υπερισχύσει μια τελική μέθοδος } - Μια μέθοδος που δηλώνεται ως
-
Τάξη
final:- Μια τάξη που δηλώνεται ως
finalδεν μπορεί να έχει υποκλάσεις (δεν μπορεί να κληρονομηθεί). - Αυτό χρησιμοποιείται για να διασφαλίσει την αμετάβλητη φύση της τάξης και να αποτρέψει την επέκταση της λειτουργικότητάς της.
final class ImmutableClass { private final int value; public ImmutableClass(int value) { this.value = value; } public int getValue() { return value; } } // class TryingToExtend extends ImmutableClass { } // Σφάλμα μεταγλώττισης - δεν μπορεί να κληρονομήσει από μια τελική τάξη - Μια τάξη που δηλώνεται ως