Предаване на стойност и предаване на препратка в Java



Този блог ви помага да разберете Pass by Value и Pass by Reference в Java. Той също така обяснява защо Java е посочена като Pass by Value с пример.

Java е един от най-фундаменталните езици за програмиране, който всеки може да вземе. Толкова е просто в същото време, възможността за това, което можете да развиете с помощта на Java, е безкрайна!Това прави Java най-широко използвания език в индустрията днес.Този блог ще ви помогне да разберете за предаваната стойност и прехвърлянето в Java в следната последователност:

Предаване на стойност и предаване на препратка в Java

Предаване по стойност и Предаване по позоваване са двата начина, по които можем да предадем стойност на променливата във функция.





  • Предаване на стойност: Това е процес, при който стойностите на функционалните параметри се копират в друга променлива и вместо това се предава този копиран обект. Това е известно като call by Value.

  • Предайте от референцията: Това е процес, при който действителното копие на референцията се предава на функцията. Това се нарича Reference.



Говорейки за Java, можем да кажем, че Java е Pass by Value и не преминава чрез препратка.

абстракция на данни c ++

Ще илюстрираме горе цитираното твърдение чрез програмиране.

Илюстрация с програма

Да кажем, че имаме клас Кола като по-долу.



публична класа 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}

След това имаме програма, която разменя два обекта.

публичен клас Disp {публична статична празнота main (String [] args) {Car red = new Car ('Red') Балон жълт = нов Balloon ('Yellow') суап (червен, жълт) System.out.println ('червен цвят = '+ red.getColor ()) System.out.println (' жълт цвят = '+ yellow.getColor ()) desc (жълт) System.out.println (' жълт цвят = '+ жълт.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} // метод на суап публичен статичен празен суап (Обект o1, Обект o2) {Обект temp = o1 o1 = o2 o2 = temp}}

Изход

Червен цвят = Червен

Жълт цвят = жълт

Жълт цвят = Червен

Обяснение:

Така че, както казах по-рано, че JAVA се предава от Value, следователно можем да видим, че първите два реда в изхода методът swap () не работи. Нека направим задълбочено обяснение на кода.

Предаване на стойност и предаване чрез препратка в Java

Първо, създадохме екземпляр на клас с помощта на ново оператор. Създава се и стойността се съхранява на мястото на паметта. Следователно този екземпляр сочи местоположението на паметта на обектите, което е „червено“ и „жълто“. Сега, когато извикваме стойностите с нови обекти o1 и o2, тогава той сочи към местоположението на паметта на двата обекта, което е „червено“ и „жълто“. Така че, когато методът за размяна се извика отначало, той сочи към местоположението на паметта на „Червено“. В следващия ред препратката към автомобила се променя на следващия адрес и се насочва към местоположението на паметта на „жълто“. Следователно те се разменят на втората стъпка, а не на първата стъпка. Ето защо JAVA се нарича „Предаване от стойност“, а не препратка.

последователност на фибоначи c ++

Сега, след като разбрахте Pass by Value и Pass by Reference в Java, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия „Предаване на стойност и предаване на препратка в Java“ и ние ще се свържем с вас възможно най-скоро.