Kāda ir atšķirība starp Java maināmo un nemaināmo?



Šis raksts par Java maināmām un nemaināmām ir visaptverošs ceļvedis par atšķirībām starp tiem, kā arī apspriež, kāpēc java virknes ir nemainīgas.

Java ir viena no populārākajām nodrošina dažādas koncepcijas lietojumprogrammu izveidei, un viens no šādiem jēdzieniem ir Java maināms un maināms. Šī koncepcija balstās uz izmaiņu veikšanu laukos pēc objekta izveides un tādējādi atvieglo programmēšanu . Tātad šajā rakstā par maināmu un nemaināmu Java es apspriedīšu šādas tēmas:

Kas ir maināms objekts?





Objekti, kuros pēc objekta izveides var mainīt laukus un stāvokļus, ir pazīstami kā maināmi objekti. Piemērs : java.util.Date, StringBuilder utt.

Kas ir nemaināms objekts?



c ++ notiek kārtot

The objektiem kurās pēc objekta izveides jūs neko nevarat mainīt, tiek dēvēti par nemaināmiem objektiem. Piemērs : Iesaiņoti primitīvi objekti, piemēram, vesels skaitlis, garš un citi.

Tātad, tagad, kad jūs zināt, kas ir maināms un nemaināms java, ļaujiet mums virzīties uz priekšu un redzēt atšķirības starp abiem.

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



Lai redzētu atšķirības starp maināmiem un nemainīgiem Java objektiem, varat atsaukties uz šo tabulu.

Maināms Nemaināms
Pēc objekta izveides laukus var mainītPēc objekta izveides laukus nevar mainīt
Parasti nodrošina metodi lauka vērtības modificēšanaiNav nevienas metodes lauka vērtības modificēšanai
Ir Getter un Setter metodesIr tikai Getter metode
Piemērs: StringBuilder, java.util.DatePiemērs: virknes, iesaiņoti primitīvi objekti, piemēram, vesels skaitlis, garš un citi

Tagad, kad jūs zināt atšķirības starp maināmiem un nemainīgiem objektiem, ļaujiet mums izpētīt, kā tos izveidot klases.

Kā izveidot maināmu klasi?

Lai izveidotu maināmu klasi Java, jums jāpārliecinās, vai ir izpildītas šādas prasības:

  1. Norādiet metodi lai modificētu lauka vērtības
  2. Getter and Setter metode

Apsveriet šādu kodu:

pakete edureka publiskās klases piemērs {private String kursename example (String Coursename) {this.coursename = Coursename} public String getName () {return Coursename} public void setName (String Coursename) {this.coursename = Coursename} public static void main (String [] args) {piemērs obj = jauns piemērs ('Mašīnmācība') System.out.println (obj.getName ()) // atjaunināt nosaukumu, šis objekts ir maināms obj.setName ('Mašīnmācīšanās meistari') sistēma. out.println (obj.getName ())}}

Jūs redzētu šādu izvadi:

Maināms objektu izvads - maināms un maināms Java- Edureka

Tagad, kad jūs zināt, kā izveidot maināmu klasi, tālāk šajā rakstā apskatīsim, kā izveidot nemainīgu klasi.

Kā izveidot nemaināmu klasi?

Lai Java izveidotu nemaināmu klasi, jums jāpārliecinās, vai ir izpildītas šādas prasības:

  1. Klase jādeklarē kā galīgais lai to nevarētu pagarināt.
  2. Visi lauki ir jāpadara privāti, lai nebūtu atļauta tieša piekļuve
  3. Nav iestatītāju metožu
  4. Padariet visus maināmos laukus galīgus, lai tos varētu piešķirt tikai vienu reizi.
pakete edureka public class exampleimutable {private final String Coursename exampleimmutable (final String Coursename) {this.coursename = Coursename} public final String getName () {return Coursename} public static void main (String [] args) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ())}}

Jūs redzētu šādu izvadi:

Labi, tāpēc tagad, kad jūs zināt par maināmiem un nemainīgiem objektiem, ļaujiet man jums pateikt, ka virknes Java nemainās. Tagad esmu pārliecināts, ka tas varētu būt radījis jautājumu, kāpēc virknes ir nemainīgas Java. Tātad, nākamais šajā rakstā, apskatīsim to pašu.

Kāpēc Java virknes ir nemaināmas?

Java lieto jēdzienus . Tātad, ja ņemat vērā piemēru, kurā jums ir daudz atsauces mainīgo, kas atsaucas uz vienu objektu, pat tad, ja viens atsauces mainīgais maina objekts , automātiski tiks ietekmēti visi pārējie atsauces mainīgie. Arī saskaņā ar Efektīva Java ,4. nodaļa, 73. lpp., 2. izdevums, ir iemesli, kāpēc izmantot nemaināmās klases:

  • Nemaināmi objekti ir vienkārši
  • Šiem objektiem nav nepieciešama sinhronizācija, un tie pēc savas būtības ir droši
  • Nemaināmi priekšmeti ir labi celtniecības elementi citiem objektiem

Ja man jums jāpaskaidro ar piemēru,

Pieņemsim, ka jums ir mainīgais paraugu ņemšana , kurā glabājas virkne “ Mašīnmācība “. Tagad, ja jūs savienojat šo virkni ar citu virkni ' Meistari ', tad objekts, kas izveidots Mašīnmācība ”Nemainīsies. Tā vietā tiks izveidots jauns objekts Mašīnmācīšanās meistari “. Skatiet zemāk esošo attēlu:

Kā redzat iepriekš redzamajā attēlā, paraugu ņemšana atsauces mainīgais attiecas uz “Machine Learning”, bet ne uz citu virkni, pat pēc divu objektu izveidošanas. Ar to mēs esam nonākuši galā ar šo rakstu par Java maināmajiem un nemainīgajiem. Es ceru, ka jums, puiši, ir skaidrs katrs aspekts, par kuru esmu runājis iepriekš.

Tagad, kad esat sapratis Java pamatus, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums iespēju sākt Java programmēšanu un apmācīt gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Maināms un nemaināms Java valodā” komentāru sadaļā, un mēs pēc iespējas ātrāk sazināsimies ar jums.