logo

Mainīgs un nemainīgs Java

Java ir objektorientēta programmēšanas valoda. Tā kā tā ir uz objektu orientēta programmēšanas valoda, visas metodes un mehānisms griežas ap objektiem. Viena uz objektu balstīta koncepcija ir mainīga un nemainīgs Java valodā . Java objekti ir mainīgi vai nemainīgi; tas ir atkarīgs no tā, kā objektu var atkārtot.

Šajā sadaļā mēs apspriedīsim mainīgos un nemainīgos objektus Java. Turklāt mēs redzēsim atšķirību starp tām.

Kas ir mainīgie objekti

Mainīgie objekti ir objekti, kuru vērtību var mainīt pēc inicializācijas. Mēs varam mainīt objekta vērtības, piemēram, lauku un stāvokļus, pēc objekta izveides. Piemēram, java.util.Datums , StringBuilder , StringBuffer utt.

Kad veicām izmaiņas esošajos mainīgajos objektos, jauns objekts netiks izveidots; tā vietā tas mainīs esošā objekta vērtību. Šīs objekta klases nodrošina metodes, kā tajā veikt izmaiņas.

Getters un Setters (get() un set() metodes) ir pieejami mainīgos objektos. Mutable objekts var būt vai var nebūt pavedienu drošs.

icloud attēli uz Android

Kas ir nemainīgi objekti

Nemaināmie objekti ir objekti, kuru vērtību pēc inicializācijas nevar mainīt. Mēs nevaram neko mainīt, kad objekts ir izveidots. Piemēram, primitīvi objekti piemēram, int, garš , peldēt , dubultā , visas mantotās klases, Iesaiņojuma klase , Stīgu klase utt.

Īsāk sakot, nemainīgs nozīmē nemodificētu vai negrozāmu. Kad ir izveidoti nemainīgi objekti, to objektu vērtības un stāvokli nevar mainīt.

Nemaināmiem objektiem ir pieejami tikai Getteri (metode get()), nevis seteri (metode set()).

java char uz virkni

Apskatīsim, kā izveidot klases mainīgiem un nemainīgiem objektiem.

Kā izveidot mainīgu klasi

Šīs divas lietas ir būtiskas, lai izveidotu mainīgu klasi:

  • Lauku vērtību modificēšanas metodes
  • Objektu ieguvēji un seteri

Apsveriet tālāk redzamo mainīgās klases piemēru:

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

Izvade:

 JavaTpoint Java Training 

Iepriekš minētajā piemērā mēs mainām nosaukuma vērtību, izmantojot metodi setName.

Kā izveidot nemainīgu klasi

Šādas lietas ir būtiskas, lai izveidotu nemainīgu klasi:

  • Noslēguma klase, kas tiek pasludināta par galīgo, lai to nevarētu pagarināt.
  • Visiem laukiem jābūt privātiem, lai tieša piekļuve laukiem būtu bloķēta.
  • Nav seteru
  • Visiem mainīgajiem laukiem jābūt galīgiem, lai pēc inicializācijas tos nevarētu atkārtot.

Apsveriet tālāk sniegto piemēru:

java skaitītājs
 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()); } } 

Izvade:

 Core Java Training 

Tāpēc mēs esam apsprieduši mainīgos un nemainīgos objektus un klases. Apspriedīsim atšķirības starp tām:

Atšķirība starp mainīgiem un nemainīgiem objektiem

Tālāk ir norādītas dažas galvenās atšķirības starp mainīgiem un nemainīgiem objektiem Java :

  • Maināmos objektus var mainīt uz jebkuru vērtību vai stāvokli, nepievienojot jaunu objektu. Tā kā nemainīgos objektus nevar mainīt uz to vērtību vai stāvokli, kad tie ir izveidoti. Nemainīgu objektu gadījumā ikreiz, kad mainām objekta stāvokli, tiks izveidots jauns objekts.
  • Mainīgi objekti nodrošina metodi objekta satura maiņai. Salīdzinoši nemaināmie objekti nenodrošina nevienu metodi vērtību mainīšanai.
  • Mainīgie objekti atbalsta gan seterus, gan getterus. Salīdzinoši nemaināmie objekti atbalsta tikai iestatītājus, nevis ieguvējus.
  • Mainīgie objekti var būt vai nebūt pavedienu droši, bet nemainīgie objekti pēc noklusējuma ir droši pavedieniem.
  • Maināmo klašu piemēri ir StringBuffer, Java.util.Date, StringBuilder utt. Tā kā nemaināmie objekti ir mantotās klases, iesaiņojuma klases, virkņu klase utt.

Apsveriet tālāk redzamo tabulu:

Mainīgs Nemainīgs
Mēs varam mainīt mainīgo objektu vērtību pēc inicializācijas. Tiklīdz ir uzsākts nemainīgs objekts; Mēs nevaram mainīt tās vērtības.
Stāvokli var mainīt. Valsts nevar mainīties.
Mainīgos objektos jauni objekti neveidojas. Nemainīgos objektos jauns objekts tiek veidots, mainot objekta vērtību.
Tas nodrošina metodes, kā mainīt objektu. Tas nenodrošina nekādu metodi objekta vērtības mainīšanai.
Tā atbalsta metodes get () un set (), lai dela ar objektu. Tā atbalsta tikai metodi get(), lai nodotu objekta vērtību.
Mainīgās klases var būt vai nebūt pavedieniem drošas. Nemainīgās klases ir drošas pret pavedieniem.
Būtiski, lai izveidotu mainīgu klasi, ir lauku modificēšanas metodes, ieguvēji un iestatītāji. Būtiskākie elementi nemainīgas klases izveidošanai ir gala klase, privātie lauki, galīgie mainīgie objekti.

Kāpēc Java virknes ir nemainīgas

String Java ir ļoti īpaša klase, jo tā tiek izmantota gandrīz katrā Java programmā. Tāpēc tas ir nemainīgs, lai uzlabotu veiktspēju un drošību. Sapratīsim to sīkāk:

Java valodā virknes izmanto literāļu jēdzienu. Pieņemsim, ka mums ir objekts ar daudziem atsauces mainīgajiem. Šādā scenārijā, ja mēs mainīsim atsauces mainīgā vērtību, tas ietekmēs visu objektu un visas tā vērtības.

Papildus iepriekš minētajiem iemesliem virknes nemainīgumu var izraisīt arī šādi iemesli:

Nemainīgi objekti ir ļoti vienkārši; nav nepieciešama sinhronizācija, un tie pēc būtības ir droši pavedieniem. Taču nemainīgi objekti ir labi celtniecības bloki citiem objektiem, tāpēc mums ir jānodrošina tiem īpaša piesardzība.

Lielākā daļa izstrādātāju padara virkni par galīgo objektu, lai to vēlāk nevarētu mainīt.

Linux mainīt direktorija nosaukumu

Secinājums

Mēs esam apsprieduši mainīgus un nemainīgus objektus Java, tagad mums ir skaidra izpratne gan par mainīgiem, gan nemaināmiem objektiem un klasēm. Turklāt mēs esam redzējuši, kā izveidot mainīgu un nemainīgu klasi.

Tiek atzīmēts, ka nemainīgus objektus var mainīt uz to vērtību un stāvokli pēc iniciēšanas, un tie var būt vai nebūt droši pavedieniem. Salīdzinoši, nemaināmos objektus nevar mainīt uz to stāvokli un vērtību un noklusējuma pavedienu drošu.