Sobes.tech
Junior — Middle

Java'da sinf yaratishda uni o'zgarmas qilish uchun qanday tamoyillarni qo'llash kerak?

sobes.tech AI

AIdan javob

Java'da sinfni o'zgarmas (immutable) qilish uchun bir nechta tamoyillarni bajarish kerak:

  1. Sinfni final deb e'lon qilish — shunda undan voris sinf yaratib, uning xulq-atvorini o'zgartirish mumkin bo'lmaydi.
  2. Barcha maydonlarni private va final qilish — shunda ular faqat bir marta, initsializatsiya paytida o'rnatiladi va keyin o'zgartirilmaydi.
  3. Setters (maydonlarni o'zgartirish uchun metodlar) taqdim etmaslik.
  4. Barcha maydonlarni konstruktor orqali initsializatsiya qilish.
  5. Agar maydonlar o'zgartiriladigan ob'ektlarga (masalan, massivlar, kolleksiyalar) havolalar bo'lsa, ularni tayinlash va getterlardan chiqarishda nusxalarini yaratish, shunda tashqi o'zgarishlar ichki holatga ta'sir qilmaydi.

Misol:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

Bunday sinf, ob'ekt yaratgandan so'ng, uning holatini o'zgartirish imkonini bermaydi, bu esa ip xavfsizligi va xulq-atvorining oldindan aytib bo'ladiganligi uchun foydalidir.