Sobes.tech
Junior

Mida tähendab märksõna 'final' Java programmeerimiskeeles?

sobes.tech AI

Vastus AI-lt

Java final märksõna kasutatakse selleks, et näidata, et muutuja, meetod või klass ei saa muutuda:

  1. final muutuja:

    • final-ga deklareeritud muutuja väärtus võib olla määratud ainult üks kord. Pärast määramist ei saa seda muuta:
    • Primitiivsete tüüpide puhul on final muutuja väärtus konstant:
    • Seotud tüüpide puhul tähendab final muutuja, et viide objekti ei saa muutuda, kuid objekti enda olek (tema väljad) võib muutuda (kui ainult väljad ise ei ole final):
    final int MAX_VALUE = 100; // final primitiivne muutuja
    
    final List<String> names = new ArrayList<>(); // final viide
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Kompileerimisel viga - viidet ei saa ümber määrata
    
  2. final meetod:

    • Meetod, mis on deklareeritud kui final, ei saa alamsklassides üle kirjutada:
    • Seda kasutatakse soovimatute käitumise muutuste vältimiseks pärilikkuse hierarhias:
    class Parent {
        final void display() {
            System.out.println("This is a final method.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Kompileerimisel viga - `final` meetodit ei saa üle kirjutada
    }
    
  3. final klass:

    • Klass, mis on deklareeritud kui final, ei saa olla alamklass (ei saa pärandada):
    • Seda kasutatakse klassi muutumatuse tagamiseks ja selle funktsionaalsuse laiendamise vältimiseks:
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Kompileerimisel viga - `final` klassi ei saa pärandada