Sobes.tech
Junior

Ko nozīmē atslēgvārds 'final' Java programmēšanas valodā?

sobes.tech AI

Atbilde no AI

Java final atslēgas vārds tiek izmantots, lai norādītu, ka mainīgais, metode vai klase nevar tikt mainīta:

  1. final mainīgais:

    • final deklarēts mainīgais var tikt piešķirts tikai vienu reizi. Pēc piešķiršanas tas nevar tikt mainīts:
    • Primitīvu tipu gadījumā final mainīgā vērtība ir konstante:
    • Saistīto tipu gadījumā final mainīgais nozīmē, ka saite uz objektu nevar tikt mainīta, bet objekta stāvoklis (tās lauki) var tikt mainīti (ja tikai lauki nav final):
    final int MAX_VALUE = 100; // final primitīvs mainīgais
    
    final List<String> names = new ArrayList<>(); // final saite
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Kompilācijas kļūda - saite nevar tikt pārrakstīta
    
  2. final metode:

    • Metode, kas deklarēta kā final, nevar tikt pārrakstīta (overridden) apakšklasēs:
    • Tas tiek izmantots, lai novērstu nevēlamas izmaiņas uzvedībā mantošanas hierarhijā:
    class Parent {
        final void display() {
            System.out.println("This is a final method.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Kompilācijas kļūda - `final` metode nevar tikt pārrakstīta
    }
    
  3. final klase:

    • Klase, kas deklarēta kā final, nevar būt apakšklašu (nevar mantošana):
    • Tas tiek izmantots, lai nodrošinātu, ka klase nav maināma un tās funkcionalitāte netiek paplašināta:
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Kompilācijas kļūda - `final` klase nevar mantoēt