logo

Spremenljivi in ​​nespremenljivi v Javi

Java je objektno usmerjen programski jezik. Ker gre za objektno usmerjen programski jezik, se vse metode in mehanizmi vrtijo okoli objektov. En koncept, ki temelji na predmetu, je spremenljiv in nespremenljiv v Javi . Objekti v Javi so spremenljivi ali nespremenljivi; odvisno je od tega, kako je mogoče predmet ponoviti.

V tem razdelku bomo razpravljali o spremenljivih in nespremenljivih objektih v Javi. Nadalje bomo videli razliko med njimi.

Kaj so spremenljivi predmeti

Spremenljivi objekti so objekti, katerih vrednost je mogoče spremeniti po inicializaciji. Ko je predmet ustvarjen, lahko spremenimo vrednosti predmeta, kot so polja in stanja. na primer java.util.Date , StringBuilder , StringBuffer itd.

Ko smo naredili spremembo v obstoječih spremenljivih objektih, ne bo ustvarjen nov objekt; namesto tega bo spremenil vrednost obstoječega predmeta. Ti razredi objektov zagotavljajo metode za spreminjanje v njem.

Getters in Setters (metodi get() in set()) sta na voljo v spremenljivih objektih. Predmet Mutable je lahko ali pa tudi ni varen za niti.

mysql seznam vseh uporabnikov

Kaj so nespremenljivi predmeti

Nespremenljivi objekti so objekti, katerih vrednosti po inicializaciji ni mogoče spremeniti. Ko je predmet ustvarjen, ne moremo ničesar spremeniti. na primer primitivni predmeti kot je int, dolga , lebdi , dvojno , vsi podedovani razredi, Razred ovoja , Razred nizov itd.

Na kratko, nespremenljivo pomeni nespremenjeno ali nespremenljivo. Ko so nespremenljivi objekti ustvarjeni, njihovih vrednosti objektov in stanja ni mogoče spremeniti.

Za nespremenljive predmete so na voljo samo Getters (metoda get()), ne Setters (metoda set().

Poglejmo, kako ustvariti razrede za spremenljive in nespremenljive predmete.

Kako ustvariti spremenljiv razred

Naslednji dve stvari sta bistveni za ustvarjanje spremenljivega razreda:

  • Metode za spreminjanje vrednosti polj
  • Pridobivalci in nastavljalci objektov

Razmislite o spodnjem primeru spremenljivega razreda:

arraylist v Javi
 public class JtpExample { private String s; JtpExample(String s) { this.s = s; } public String getName() { return s; } public void setName(String coursename) { this.s = coursename; } public static void main(String[] args) { JtpExample obj = new JtpExample('JavaTpoint'); System.out.println(obj.getName()); // Here, we can update the name using the setName method. obj.setName('Java Training'); System.out.println(obj.getName()); } } 

Izhod:

 JavaTpoint Java Training 

Iz zgornjega primera spreminjamo vrednost imena z metodo setName.

Kako ustvariti nespremenljiv razred

Za ustvarjanje nespremenljivega razreda so bistvene naslednje stvari:

  • Končni razred, ki je razglašen za končnega, tako da ga ni mogoče razširiti.
  • Vsa polja morajo biti zasebna, tako da je neposreden dostop do polj blokiran.
  • Brez postavljalcev
  • Vsa spremenljiva polja morajo biti končna, tako da jih po inicializaciji ni več mogoče ponoviti.

Razmislite o spodnjem primeru:

 public class JtpExample1 { private final String s; JtpExample1(final String s) { this.s = s; } public final String getName() { return s; } public static void main(String[] args) { JtpExample obj = new JtpExample('Core Java Training'); System.out.println(obj.getName()); } } 

Izhod:

 Core Java Training 

Zato smo razpravljali o spremenljivih in nespremenljivih objektih in razredih. Pogovorimo se o razlikah med njimi:

Razlika med spremenljivimi in nespremenljivimi objekti

Sledi nekaj ključnih razlik med spremenljivimi in nespremenljivimi predmeti v Java :

cimet vs mate
  • Spremenljive objekte je mogoče spremeniti v poljubno vrednost ali stanje brez dodajanja novega predmeta. Medtem ko nespremenljivih predmetov ni mogoče spremeniti v njihovo vrednost ali stanje, ko so ustvarjeni. V primeru nespremenljivih objektov bo vsakič, ko spremenimo stanje objekta, ustvarjen nov objekt.
  • Spremenljivi objekti nudijo metodo za spreminjanje vsebine predmeta. V primerjavi s tem nespremenljivi objekti ne zagotavljajo nobene metode za spreminjanje vrednosti.
  • Spremenljivi objekti podpirajo nastavitve in pridobivalnike. Za primerjavo, nespremenljivi objekti podpirajo samo nastavitve, ne pa pridobivalnikov.
  • Spremenljivi objekti so lahko ali pa tudi niso varni za niti, vendar so nespremenljivi objekti privzeto varni za niti.
  • Primeri spremenljivih razredov so StringBuffer, Java.util.Date, StringBuilder itd. Medtem ko so nespremenljivi objekti starejši razredi, ovojni razredi, razred String itd.

Razmislite o spodnji tabeli:

Spremenljiv Nespremenljivo
Po inicializaciji lahko spremenimo vrednost spremenljivih objektov. Ko je enkrat iniciiran nespremenljiv objekt; Njegovih vrednosti ne moremo spremeniti.
Stanje se lahko spremeni. Stanja ni mogoče spremeniti.
V spremenljivih objektih se ne oblikujejo novi objekti. Pri nespremenljivih objektih se nov objekt oblikuje, ko se spremeni vrednost objekta.
Ponuja metode za spreminjanje predmeta. Ne ponuja nobene metode za spreminjanje vrednosti predmeta.
Podpira metode get() in set() za delo z objektom. Podpira le metodo get() za posredovanje vrednosti predmeta.
Spremenljivi razredi so lahko ali pa tudi ne varni za niti. Nespremenljivi razredi so varni za niti.
Bistvo za ustvarjanje spremenljivega razreda so metode za spreminjanje polj, pridobivalnikov in nastavljalcev. Bistveno za ustvarjanje nespremenljivega razreda so končni razred, zasebna polja, končni spremenljivi objekti.

Zakaj so nizi v Javi nespremenljivi

Niz v Javi je zelo poseben razred, saj se uporablja skoraj v vsakem programu Java. Zato je Nespremenljivo izboljšati zmogljivost in varnost. Razumejmo podrobno:

V Javi nizi uporabljajo koncept literalov. Recimo, da imamo objekt s številnimi referenčnimi spremenljivkami. Če bomo v takem scenariju spremenili vrednost referenčne spremenljivke, bo to vplivalo na celoten objekt in vse njegove vrednosti.

t ff

Poleg zgornjih razlogov so za nespremenljivost niza odgovorni tudi naslednji razlogi:

Nespremenljivi objekti so zelo preprosti; ni potrebe po sinhronizaciji in so sami po sebi varni za niti. Toda nespremenljivi predmeti so dobri gradniki za druge predmete, zato jim moramo zagotoviti posebno skrb.

Večina razvijalcev naredi niz končni objekt, tako da ga pozneje ni mogoče spreminjati.

Zaključek

Razpravljali smo o spremenljivih in nespremenljivih objektih v Javi, zdaj pa jasno razumemo tako spremenljive kot nespremenljive predmete in razrede. Nadalje smo videli, kako ustvariti spremenljiv in nespremenljiv razred.

Opozoriti je treba, da je nespremenljive objekte mogoče spremeniti v njihovo vrednost in stanje, ko so zagnani, in so lahko ali pa tudi ne varni za niti. Primerjalno, nespremenljivih objektov ni mogoče spremeniti v njihovo stanje in vrednost ter privzeto nitno varno.