Sobes.tech
Junior

Java dasturlash tilida 'final' kalit so'zi nima anglatadi?

sobes.tech AI

AIdan javob

Java'da final kalit so'zi o'zgaruvchi, metod yoki sinf o'zgartirilmasligini ko'rsatish uchun ishlatiladi.

  1. final o'zgaruvchi:

    • final deb belgilangan o'zgaruvchining qiymati faqat bir marta tayinlanishi mumkin. Tayyorlangandan so'ng, uni o'zgartirib bo'lmaydi.
    • Asosiy ma'lumot turlari uchun, final o'zgaruvchining qiymati konstantadir.
    • Referens turlari uchun, final sharti ob'ektga bo'lgan referensni o'zgartirish mumkin emas, lekin ob'ektning holati (uning maydonlari) o'zgartirilishi mumkin (agar ob'ektning maydonlari ham final bo'lmasa).
    final int MAX_VALUE = 100; // final primitiv o'zgaruvchi
    
    final List<String> names = new ArrayList<>(); // final referens o'zgaruvchi
    names.add("Alice"); // OK
    // names = new ArrayList<>(); // Kompilatsiya xatosi - referensni qayta tayinlash mumkin emas
    
  2. final metod:

    • final deb belgilangan metod, subklasslarda qayta yozib bo'lmaydi.
    • Bu, meros olish ketma-ketligida xatti-harakatni o'zgartirishni oldini olish uchun ishlatiladi.
    class Parent {
        final void display() {
            System.out.println("Bu final metod.");
        }
    }
    
    class Child extends Parent {
        // @Override void display() { } // Kompilatsiya xatosi - final metodni qayta yozib bo'lmaydi
    }
    
  3. final sinf:

    • final deb belgilangan sinf, meros oluvchi (subklass) bo'lishi mumkin emas.
    • Bu, sinfning o'zgarmasligini ta'minlash va uning funksionalligini kengaytirishni oldini olish uchun ishlatiladi.
    final class ImmutableClass {
        private final int value;
    
        public ImmutableClass(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    }
    
    // class TryingToExtend extends ImmutableClass { } // Kompilatsiya xatosi - final sinfdan meros olinmaydi