Wat is het verschil tussen veranderlijk en onveranderlijk in Java?



Dit artikel over veranderlijk en onveranderlijk in Java is een uitgebreide gids voor de verschillen tussen beide en bespreekt ook waarom Java-strings onveranderlijk zijn.

Java is een van de meest populaire biedt verschillende concepten voor het maken van applicaties, en een zo'n concept is Veranderlijk en onveranderlijk in Java. Welnu, dit concept is gebaseerd op het aanbrengen van wijzigingen in de velden nadat het object is gemaakt en vereenvoudigt dus het programmeren voor . Dus in dit artikel over veranderlijk en onveranderlijk in Java, zal ik de volgende onderwerpen bespreken:

Wat is een veranderlijk object?





De objecten waarin u de velden en statussen kunt wijzigen nadat het object is gemaakt, worden Veranderlijke objecten genoemd. Voorbeeld : java.util.Date, StringBuilder en etc.

hoe css sprites te gebruiken

Wat is een onveranderlijk object?



De voorwerpen waarin u niets kunt veranderen nadat het object is gemaakt, staan ​​bekend als onveranderlijke objecten. Voorbeeld : Omkaderde primitieve objecten zoals Integer, Long en etc.

Dus nu u weet wat veranderlijk en onveranderlijk is in Java, laten we verder gaan en de verschillen tussen de twee zien.

Verschil tussen veranderlijke en onveranderlijke objecten



U kunt de volgende tabel raadplegen voor de verschillen tussen veranderlijke en onveranderlijke objecten in Java.

Veranderlijk Onveranderlijk
Velden kunnen worden gewijzigd nadat het object is gemaaktVelden kunnen niet worden gewijzigd nadat het object is gemaakt
Biedt over het algemeen een methode om de veldwaarde te wijzigenHeeft geen methode om de veldwaarde te wijzigen
Heeft Getter- en Setter-methodenHeeft alleen de Getter-methode
Voorbeeld: StringBuilder, java.util.DateVoorbeeld: tekenreeks, primitieve objecten met omkadering zoals geheel getal, lang en enz

Nu u de verschillen kent tussen veranderlijke en onveranderlijke objecten, laten we eens kijken hoe u deze kunt maken klassen.

Hoe maak je een veranderlijke klasse aan?

Om een ​​veranderlijke klasse in Java te maken, moet u ervoor zorgen dat aan de volgende vereisten is voldaan:

  1. Geef een methode om de veldwaarden te wijzigen
  2. Getter en Setter-methode

Beschouw de volgende code:

pakket edureka public class voorbeeld {private String coursename voorbeeld (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = nieuw voorbeeld ('Machine Learning') System.out.println (obj.getName ()) // update de naam, dit object is veranderlijk obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Je zou de volgende output zien:

Veranderlijke objectoutput - Veranderlijk en onveranderlijk in Java - Edureka

Dus nu u weet hoe u een veranderlijke klasse kunt maken, gaan we nu in dit artikel kijken hoe u een onveranderlijke klasse kunt maken.

Hoe maak je een onveranderlijke klasse aan?

Om een ​​onveranderlijke klasse in Java te maken, moet u ervoor zorgen dat aan de volgende vereisten is voldaan:

  1. Een klasse moet worden gedeclareerd als laatste zodat het niet kan worden verlengd.
  2. Alle velden moeten privé worden gemaakt, zodat directe toegang niet is toegestaan
  3. Geen setter-methoden
  4. Maak alle veranderlijke velden definitief, zodat ze maar één keer kunnen worden toegewezen.
pakket 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) {example obj = nieuw voorbeeld ( 'Machine Learning') System.out.println (obj.getName ())}}

Je zou de onderstaande output zien:

Oké, nu je weet over veranderlijke en onveranderlijke objecten, laat me je vertellen dat strings onveranderlijk zijn in Java. Nu, ik weet zeker dat dit een vraag kan hebben opgeworpen, waarom zijn strings onveranderlijk in Java. Dus laten we nu in dit artikel naar hetzelfde kijken.

Waarom zijn strings onveranderlijk in Java?

Java gebruikt de concepten van . Dus als je een voorbeeld bekijkt waarin je veel referentievariabelen hebt die naar een enkel object verwijzen, dan verandert zelfs als een referentievariabele de waarde van de voorwerp , worden automatisch alle andere referentievariabelen beïnvloed. Ook volgens Effectieve Java ,hoofdstuk 4, pagina 73, 2e editie, zijn de volgende redenen om onveranderlijke klassen te gebruiken:

  • Onveranderlijke objecten zijn eenvoudig
  • Deze objecten vereisen geen synchronisatie en zijn inherent thread-safe
  • Onveranderlijke objecten zijn goede bouwstenen voor andere objecten

Als ik je met een voorbeeld moet uitleggen,

Laten we zeggen dat u een variabele heeft samplestring , waarin de tekenreeks ' Machine leren “. Nu, als u deze string samenvoegt met een andere string ' Meesters ', dan is het object gemaakt voor “ Machine leren ' zal niet veranderen. In plaats daarvan wordt een nieuw object gemaakt voor ' Machine Learning Masters “. Raadpleeg de onderstaande afbeelding:

Zoals je kunt zien in de bovenstaande afbeelding, is de samplestring referentievariabele verwijst naar 'Machine Learning', maar niet naar de andere string, zelfs niet na het maken van twee objecten. Hiermee komen we een einde aan dit artikel over veranderlijk en onveranderlijk in Java. Ik hoop dat jullie duidelijk zijn over elk aspect dat ik hierboven heb besproken.

Nu u de basisprincipes van Java begrijpt, kunt u het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel de kern als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het alstublieft in het commentaargedeelte van deze blog “Veranderlijk en onveranderlijk in Java” en we nemen zo snel mogelijk contact met u op.