Sobes.tech
Junior — Middle

Kas saaksite selgitada, mis on muutumatu klass Java-s ja kuidas see luuakse?

sobes.tech AI

Vastus AI-lt

Java-s muutumatuna klassina on klass, mille objektid ei saa muutuda pärast nende loomist. Sellised klassid on kasulikud andmete turvalisuse ja mitme niidi töötamise tagamiseks.

Muutumatuna klassi loomiseks tuleb:

  • Teha klass final, et seda ei saaks pärida ja selle käitumist muuta.
  • Kõik väljad teha private ja final.
  • Mitte pakkuda setter-meetodeid (meetodid väljade muutmiseks).
  • Kõiki välju initsialiseerida konstruktoriga.
  • Kui väljad on muudetavad objektid, tagastada nende koopiad getterites, et vältida sisemise oleku muutmist.

Näide:

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