Sobes.tech
Junior — Middle

Мо метавонед шарҳ диҳед, ки чӣ гуна синфи бетағйир дар Java аст ва чӣ гуна сохта мешавад?

sobes.tech AI

Ҷавоб аз AI

Дарсҳои тағйирнопазири Java — ин синфҳое мебошанд, ки объектҳои онҳо пас аз сохтани онҳо тағйир дода намешаванд. Ин синфҳо барои таъмин намудани бехатарии маълумот ва бисёрсоҳавӣ муфиданд.

Барои сохтани синфи тағйирнопазир, бояд:

  • Синфро final кунед, то ки онро мерос нагирифта ва рафторро тағйир додан мумкин набошад.
  • Ҳама майдонҳоро private ва final кунед.
  • Setters (методҳо барои тағйир додани майдонҳо) пешниҳод накунед.
  • Ҳама майдонҳоро тавассути конструктор оғоз кунед.
  • Агар майдонҳо объектҳои тағйирёбанда бошанд, нусхаҳои онҳоро дар getters баргардонед, то тағйир додани ҳолати дохилиро пешгирӣ кунед.

Масалан:

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;
    }
}