Java yra į objektą orientuota programavimo kalba. Kadangi tai yra į objektą orientuota programavimo kalba, visi metodai ir mechanizmai sukasi aplink objektus. Viena objekto koncepcija yra kintama ir nekintamas Java . Java objektai yra kintami arba nekintantys; tai priklauso nuo to, kaip objektas gali būti kartojamas.
Šiame skyriuje aptarsime kintamus ir nekintamus objektus Java. Be to, pamatysime skirtumą tarp jų.
Kas yra kintamieji objektai
Keičiami objektai yra objektai, kurių vertę galima pakeisti po inicijavimo. Sukūrę objektą galime pakeisti objekto reikšmes, tokias kaip laukas ir būsenos. Pavyzdžiui, java.util.Data , StringBuilder , StringBuffer ir kt.
Kai pakeitėme esamus kintamus objektus, naujas objektas nebus sukurtas; vietoj to pakeis esamo objekto vertę. Šios objekto klasės pateikia metodus, kaip atlikti jo pakeitimus.
Getteriai ir nustatytojai ( get() ir set() metodai) yra kintamuose objektuose. Keičiamas objektas gali būti saugus arba ne.
html sąrašo laukelį
Kas yra nekintantys objektai
Nekintamieji objektai yra objektai, kurių vertės negalima pakeisti po inicijavimo. Sukūrę objektą nieko pakeisti negalime. Pavyzdžiui, primityvūs objektai pvz int , ilgai , plūdė , dvigubai , visos palikimo klasės, Vyniojimo klasė , Styginių klasė ir kt.
Trumpai tariant, nekintantis reiškia nepakeistas arba nekeičiamas. Sukūrus nekintančius objektus, jų objektų reikšmių ir būsenos keisti negalima.
Nekintamiems objektams galimi tik Getteriai (metodas get()), o ne Seteriai (metodas set()).
Pažiūrėkime, kaip sukurti klases kintamiems ir nekintamiems objektams.
Kaip sukurti kintamą klasę
Šie du dalykai yra būtini norint sukurti kintamą klasę:
- Lauko reikšmių keitimo metodai
- Objektų geteriai ir seteriai
Apsvarstykite toliau pateiktą kintamos klasės pavyzdį:
konvertuoti char į java eilutę
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()); } }
Išvestis:
JavaTpoint Java Training
Iš aukščiau pateikto pavyzdžio vardo reikšmę keičiame naudodami setName metodą.
Kaip sukurti nepakeičiamą klasę
Šie dalykai yra būtini norint sukurti nekintamą klasę:
- Galutinė klasė, kuri paskelbiama galutine, kad jos nebūtų galima pratęsti.
- Visi laukai turi būti privatūs, kad būtų užblokuota tiesioginė prieiga prie laukų.
- Nėra seterių
- Visi keičiami laukai turi būti galutiniai, kad inicijavus jų nebūtų galima kartoti.
Apsvarstykite toliau pateiktą pavyzdį:
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()); } }
Išvestis:
Core Java Training
Taigi mes aptarėme kintamus ir nekintamus objektus ir klases. Pakalbėkime apie jų skirtumus:
Skirtumas tarp kintamųjų ir nekintamų objektų
Toliau pateikiami keli pagrindiniai skirtumai tarp kintamų ir nekintamų objektų Java :
kiek metų Kylie Jenner
- Keičiamus objektus galima pakeisti į bet kokią reikšmę arba būseną nepridedant naujo objekto. Tuo tarpu nekintami objektai negali būti pakeisti į jų vertę ar būseną, kai jie yra sukurti. Nekintamų objektų atveju, kai pakeičiame objekto būseną, bus sukurtas naujas objektas.
- Kintamieji objektai suteikia būdą pakeisti objekto turinį. Palyginimui, nekintantys objektai nepateikia jokio metodo, kaip pakeisti reikšmes.
- Kintamieji objektai palaiko ir seterius, ir geterius. Palyginti, nekintantys objektai palaiko tik seterius, o ne geterius.
- Kintamieji objektai gali būti saugūs gijų atžvilgiu arba ne, tačiau pagal nutylėjimą nekintantys objektai yra saugūs gijai.
- Kintamų klasių pavyzdžiai yra „StringBuffer“, „Java.util.Date“, „StringBuilder“ ir kt. Tuo tarpu nekintantys objektai yra senosios klasės, įpakavimo klasės, eilučių klasė ir kt.
Apsvarstykite toliau pateiktą lentelę:
Keičiamas | Nekintama |
---|---|
Po inicijavimo galime pakeisti kintamų objektų vertę. | Kai inicijuojamas nekintantis objektas; Mes negalime pakeisti jos vertybių. |
Valstybę galima pakeisti. | Valstybės pakeisti negalima. |
Kintamuose objektuose nauji objektai nesusidaro. | Nekintamuose objektuose, pakeitus objekto vertę, susidaro naujas objektas. |
Jame pateikiami metodai, kaip pakeisti objektą. | Jame nėra jokio metodo, kaip pakeisti objekto vertę. |
Jis palaiko get() ir set() metodus, skirtus dela su objektu. | Jis palaiko tik get() metodą, kad perduotų objekto vertę. |
Kintamos klasės gali būti saugios arba ne. | Nekintamos klasės yra saugios siūlams. |
Pagrindiniai dalykai kuriant kintamą klasę yra laukų modifikavimo metodai, geteriai ir nustatytojai. | Esminiai dalykai kuriant nekintamą klasę yra galutinė klasė, privatūs laukai, galutiniai kintami objektai. |
Kodėl „Java“ eilutės yra nekintamos
„Java“ eilutė yra labai ypatinga klasė, nes ji naudojama beveik visose „Java“ programose. Štai kodėl jis yra nepakeičiamas siekiant pagerinti našumą ir saugumą. Supraskime tai išsamiai:
Java kalboje eilutės naudoja literalų sąvoką. Tarkime, kad turime objektą, turintį daug atskaitos kintamųjų. Tokiu atveju, jei pakeisime atskaitos kintamojo reikšmę, tai turės įtakos visam objektui ir visoms jo reikšmėms.
latekso šriftas
Be pirmiau minėtų priežasčių, šios priežastys taip pat yra atsakingos už tai, kad eilutė taptų nekintama:
Nekintami objektai yra labai paprasti; nereikia sinchronizuoti ir yra iš prigimties saugūs siūlams. Tačiau nekintantys objektai yra geri kitų objektų statybiniai blokai, todėl turime juos ypač prižiūrėti.
Daugelis kūrėjų paverčia eilutę galutiniu objektu, kad vėliau jos nebūtų galima keisti.
Išvada
Mes aptarėme kintamus ir nekintamus objektus Java, dabar aiškiai suprantame tiek kintamus, tiek nekintamus objektus ir klases. Be to, matėme, kaip sukurti kintamą ir nekintamą klasę.
Pažymėtina, kad nekintami objektai gali būti pakeisti į jų vertę ir būseną, kai jie inicijuojami, ir gali būti saugūs arba ne. Palyginimui, nekeičiamų objektų negalima pakeisti į jų būseną ir vertę bei numatytąjį gijos saugų.