Junior — Middle
Ինչպե՞ս կարող ենք իրականացնել դաս, որպեսզի նրա վիճակը մնա անփոփոխ ստեղծվելուց հետո։
sobes.tech AI
Պատասխան AI-ից
Java-ում փոփոխական չհանդիսացող (immutable) դաս ստեղծելու համար անհրաժեշտ է:
- Դասը
finalդարձնել, որպեսզի այն ժառանգել կամ փոխել նրա վարքը հնարավոր չլինի: - Բոլոր դաշտերը հայտարարել որպես
private final: - Բոլոր դաշտերը սկզբնավորել կոնստրուկտորով:
- Չտալ setter-ներ (մեթոդներ դաշտերը փոխելու համար):
- Եթե դաշտերը փոփոխական օբյեկտներ են (օրինակ, զանգվածներ, հավաքածուներ), ապա նրանց պատճենները ստեղծել կոնստրուկտորում և getter-ներից վերադարձնել:
Օրինակ՝
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;
}
}
Այսպիսի դասը, օբյեկտ ստեղծելուց հետո, թույլ չի տալիս փոխել նրա վիճակը։