„Pass by Value“ ir „Pass by Reference“ Java



Šis tinklaraštis padeda jums suprasti „Java by Pass and Value“ ir „Pass by Reference“. Tai taip pat paaiškina, kodėl „Java“ pavyzdžiu vadinama „Pass by Value“.

„Java“ yra viena iš svarbiausių programavimo kalbų, kurią gali pasirinkti visi. Tai taip pat paprasta, galimybė, ką galite sukurti naudodami „Java“, yra begalinė!Tai daro „Java“ šiandien plačiausiai naudojama kalba pramonėje.Šis tinklaraštis padės suprasti „pass by value“ ir „pass by reference“ sistemoje „Java“ tokia seka:

„Pass by Value“ ir „Pass by Reference“ Java kalba

„Pass by Value“ ir „Pass by reference“ yra du būdai, kuriais galime perduoti reikšmę funkcijos kintamajam.





  • Praeiti per vertę: Tai procesas, kurio metu funkcijos parametro reikšmės nukopijuojamos į kitą kintamąjį ir vietoj to perduodamas šis nukopijuotas objektas. Tai vadinama skambučiu pagal vertę.

  • Praleiskite nuorodą: Tai procesas, kurio metu tikroji nuorodos kopija perduodama funkcijai. Tai vadina nuoroda.



Kalbėdami apie „Java“ galime pasakyti, kad „Java“ yra „Pass by Value“, o ne „nuoroda“.

Pateiksime aukščiau cituojamą teiginį programuodami.

Iliustracija su programa

Tarkime, mes turime klasę Automobilis kaip žemiau.



kaip išeiti iš java
viešosios klasės automobilis {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}

Tada mes turime programą, kuri keičia du objektus.

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 (' raudona spalva = '+ red.getColor ()) System.out.println (' geltona spalva = '+ geltona.getColor ()) desc (geltona) System.out.println (' geltona spalva = '+ geltona.getColor ())} private static void desc (Automobilio automobilis) {// automobilis = 100 balloon.setColor ('Red') // automobilis = 100 automobilis = naujas automobilis ('Green') // automobilis = 200 car.setColor ('geltonas') / / car = 200} // apsikeitimo metodas public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

Rezultatas

Raudona spalva = raudona

palaiko santykius java

Geltona spalva = geltona

Geltona spalva = raudona

Paaiškinimas:

Taigi, kaip sakiau anksčiau, kad JAVA yra „Value by pass“, todėl galime pastebėti, kad pirmosios dvi išvesties „swap“ () metodo eilutės neveikė. Atlikime išsamų kodo paaiškinimą.

„Pass by Value“ ir „Pass By Reference“ Java

Pirmiausia mes sukūrėme klasės egzempliorių naudodami naujas operatorius. Jis sukuriamas ir vertė saugoma atminties vietoje. Todėl šis objektas nurodo „raudonos“ ir „geltonos“ objektų atminties vietą. Dabar, kai reikšmes vadiname naujais objektais o1 ir o2, tai rodo į dviejų objektų atminties vietą, kuri yra „raudona“ ir „geltona“. Taigi, kai iš pradžių pasitelkiamas apsikeitimo metodas, jis nurodo atminties vietą „Raudona“. Kitoje eilutėje automobilio nuoroda pakeičiama į kitą adresą ir nurodoma „geltonos“ atminties vieta. Todėl jie keičiami ne antrame, o antrame žingsnyje. Štai kodėl JAVA vadinama „Pass by Value“, o ne nuoroda.

Dabar, kai supratote „Pass by Value“ ir „Pass by Reference“ sistemoje „Java“, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ „Java J2EE“ ir „SOA“ mokymo ir sertifikavimo kursai yra skirti studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žvalgytis į „Java“ programavimą ir išmokyti pagrindinių bei pažangių „Java“ koncepcijų kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio straipsnio „Pass by Value and Pass by Reference in Java“ komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis.