Pass by Value a Pass by Reference v Javě

Tento blog vám pomůže porozumět Pass by Value a Pass by Reference v Javě. Vysvětluje také, proč je Java na příkladu označována jako Pass by Value.

Java je jedním z nejzákladnějších programovacích jazyků, které si každý může vybrat. Je to zároveň tak jednoduché, možnost toho, co můžete pomocí Javy vyvíjet, je nekonečná!Díky tomu je Java v současnosti nejpoužívanějším jazykem v oboru.Tento blog vám pomůže porozumět hodnotám pass by value a pass by reference v Javě v následujícím pořadí:

Pass by Value a Pass by Reference v Javě

Pass by Value a Pass by reference jsou dva způsoby, kterými můžeme předat hodnotu proměnné ve funkci.





  • Předat podle hodnoty: Jedná se o proces, při kterém se hodnoty funkčních parametrů kopírují do jiné proměnné a místo toho se předává tento kopírovaný objekt. Toto se nazývá volání podle hodnoty.

  • Projít odkazem: Jedná se o proces, při kterém se skutečné kopii odkazu předá funkci. Tomu se říká Reference.



Když mluvíme o Javě, můžeme říci, že Java je Pass by Value a není pass by reference.

třídicí pole c ++

Up-citované prohlášení ilustrujeme programováním.

Ilustrace s programem

Řekněme, že máme třídu Auto jako níže.



public class Car {private String color public Car () {} public Car (String a) {this.color = a} public String getColor () {return color public void setColor (String color) {this.color = color}

Dále máme program, který zamění dva objekty.

public class Disp {public static void main (String [] args) {Car red = new Car ('Red') Balloon yellow = new Balloon ('Yellow') swap (red, yellow) System.out.println ('red color = '+ red.getColor ()) System.out.println (' žlutá barva = '+ yellow.getColor ()) desc (žlutá) System.out.println (' žlutá barva = '+ yellow.getColor ())} private static void desc (Car car) {// car = 100 balloon.setColor ('Red') // car = 100 car = new car ('Green') // car = 200 car.setColor ('Yellow') / / car = 200} // swapová metoda public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

Výstup

Červená barva = červená

Žlutá barva = žlutá

Žlutá barva = červená

Vysvětlení:

Takže jak jsem již dříve řekl, že JAVA předává Value, proto vidíme, že první dva řádky ve výstupu metoda swap () nefungovala. Pojďme důkladně vysvětlit kód.

Pass by Value a Pass By Reference v Javě

Nejprve jsme vytvořili instanci třídy pomocí Nový operátor. Vytvoří se a hodnota se uloží na paměťové místo. Proto tato instance ukazuje na místo v paměti objektů, které je „červené“ a „žluté“. Když nyní voláme hodnoty s novými objekty o1 a o2, ukazuje to na paměťové místo dvou objektů, které je „červené“ a „žluté“. Když se tedy metoda swap nejprve vyvolá, ukazuje na místo paměti „Red“. V dalším řádku se odkaz na auto změní na další adresu a bude namířen na místo paměti „žluté“. Proto se vymění v druhém kroku, ne v prvním kroku. To je důvod, proč se JAVA označuje jako Pass by Value a ne reference.

jak řadit pole v C ++

Nyní, když jste pochopili Pass by Value a Pass by Reference v Javě, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Kurz školení a certifikace Java J2EE a SOA společnosti Edureka je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto článku „Pass by Value and Pass by Reference in Java“ a my se vám ozveme co nejdříve.