Java on üks populaarsemaid pakub erinevaid kontseptsioone rakenduste loomiseks ja üks selline mõiste on Java-s muudetav ja muutumatu. Noh, see kontseptsioon tugineb väljade muudatuste tegemisele pärast objekti loomist ja hõlbustab seega selle programmeerimist . Niisiis, selles Java muutuvat ja muutumatut artiklit käsitlen järgmisi teemasid:
- Mis on muutuv objekt?
- Mis on muutumatu objekt?
- Erinevus muutuvate ja muutumatute objektide vahel
- Kuidas luua muutuvat klassi?
- Kuidas luua muutumatu klass?
- Miks on stringid Java-s muutumatud?
Mis on muutuv objekt?
Objekte, milles saate väljade ja olekute muutmist pärast objekti loomist, nimetatakse muudetavateks objektideks. Näide : java.util.Date, StringBuilder ja jne.
Mis on muutumatu objekt?
The objektid milles te ei saa objekti loomisel midagi muuta, nimetatakse muutumatuteks objektideks. Näide : Karbis olevad primitiivsed objektid nagu täisarv, pikk jms.
Niisiis, nüüd, kui teate, mis on Java-s muutlik ja muutumatu, laske meil edasi liikuda ja näha nende kahe erinevusi.
Erinevus muutuvate ja muutumatute objektide vahel
Javas olevate muutuvate ja muutumatute objektide erinevuste kohta saate viidata järgmisele tabelile.
Muutuv | Muutumatu |
Välja saab pärast objekti loomist muuta | Välju ei saa pärast objekti loomist muuta |
Üldiselt pakub välja väärtuse muutmise meetodit | Ei oma välja väärtuse muutmiseks ühtegi meetodit |
Omab Getteri ja Setteri meetodeid | Kas ainult Getteri meetodit |
Näide: StringBuilder, java.util.Date | Näide: stringid, karbiga ürgsed objektid nagu täisarv, pikk jms |
Nüüd, kui teate muutuvate ja muutumatute objektide erinevusi, uurime, kuidas neid luua klassides.
Kuidas luua muutuvat klassi?
Java-s muutuva klassi loomiseks peate veenduma, et järgmised nõuded oleksid täidetud:
teenuse piletisüsteemi koolitus
- Esitage meetod välja väärtuste muutmiseks
- Getteri ja Setteri meetod
Mõelge järgmisele koodile:
pakett edureka avaliku klassi näide {private String Coursename 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) {näide obj = uus näide ('masinõpe') System.out.println (obj.getName ()) // värskendage nime, see objekt on muutuv obj.setName ('masinõppe meistrid') süsteem. out.println (obj.getName ())}}
Näete järgmist väljundit:
Nüüd, kui teate, kuidas luua muutuvat klassi, uurime järgmisena selles artiklis, kuidas luua muutumatut klassi.
Kuidas luua muutumatu klass?
Java-s muutumatu klassi loomiseks peate veenduma, et järgmised nõuded oleksid täidetud:
- Klass tuleks deklareerida kui lõplik nii et seda ei saa pikendada.
- Kõik väljad tuleks muuta privaatseks, nii et otsene juurdepääs pole lubatud
- Setter-meetodeid pole
- Tehke kõik muudetavad väljad lõplikuks, et neid saaks määrata ainult üks kord.
pakett edureka public class exampleimmutable {private final String Coursename exampleimmutable (final String Coursename) {this.coursename = Coursename} public final String getName () {return Coursename} public static void main (String [] args) {näide obj = uus näide ( 'Machine Learning') System.out.println (obj.getName ())}}
Näete järgmist väljundit:
Olgu, nii et nüüd, kui teate muutuvatest ja muutumatutest objektidest, lubage mul teile öelda, et stringid on Java-s muutumatud. Nüüd olen kindel, et see võis tekitada küsimuse, miks on stringid Java-s muutmatud. Nii et järgmisena selles artiklis vaatleme sama.
Miks on stringid Java-s muutumatud?
Java kasutab mõisteid . Niisiis, kui kaaluda näidet, kus teil on palju viitemuutujaid, mis viitavad ühele objektile, siis isegi kui üks võrdlusmuutuja muudab objekt , see mõjutab automaatselt kõiki teisi võrdlusmuutujaid. Samuti vastavalt Tõhus Java ,4. peatüki, lk 73, 2. väljaanne, on järgmised põhjused muutmatute klasside kasutamiseks:
- Muutumatud objektid on lihtsad
- Need objektid ei vaja sünkroonimist ja on oma olemuselt niidikindlad
- Muutumatud objektid muudavad teiste objektide jaoks head ehitusplokid
Kui ma pean teid ühe näitega selgitama,
Oletame, et teil on muutuja proovivõtu , mis salvestab stringi „ Masinõpe “. Kui liitate selle stringi teise stringiga ' Meistrid ', siis loodud objekt Masinõpe ”Ei muutu. Selle asemel luuakse uus objekt Masinõppe meistrid “. Vaadake allolevat pilti:
Nagu ülaltoodud pildil näha, on proovivõtu referentsmuutuja viitab masinõppele, kuid mitte teisele stringile isegi pärast kahe objekti loomist. Sellega jõuame selle Java-i muutuva ja muutumatu teemalise artiklini. Ma loodan, et teie kutid on kõigis aspektides, mida ma eespool arutlesin, selge.
Nüüd, kui olete Java põhitõdedest aru saanud, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.
Kas teil on meile küsimus? Palun mainige seda selle ajaveebi “Muutuvad ja muutumatud Java-s” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.