有關值傳遞和引用傳遞的論述

2021-09-25 08:19:00 字數 1332 閱讀 9730

基本資料型別的資料作為方法的引數進行傳遞,那麼在方法中會另開闢乙個新的記憶體空間,

跟原來的記憶體空間不是乙個空間如果在方法中對引數的值進行修改,不會影響原來的記憶體空間的值,

除非把修改後的值返回,才能獲取方法中修改後的值

//此方法演示值傳遞,但注意沒有返回值

public

void

valuetransfer1

(int a)

//此方法也是值傳遞,但注意有返回值

public

intvaluetransfer2

(int b)

//在main函式中的**,d1為demo1類例項化的物件

int a =

10,b =10;

d1.valuetransfer1

(a);

system.out.

println

("a="

+a);

//結果為a = 10

b = d1.

valuetransfer2

(b);

system.out.

println

("b="

+b)//結果為b = 100

如果傳遞的是物件或陣列,實際上是把物件或資料的引用傳遞到方法中去,

如果方法中對應用的物件或陣列錯任何修改都會影響原來的記憶體空間的值,

即修改了原來記憶體空間,其操作的是同乙份空間

//引用傳遞

public

void

referencetransfer

(student stu)

//在main函式中的**,student是自己寫的類裡面屬性有姓名,年齡和學號

student stu =

newstudent()

; d1.

referencetransfer

(stu)

; system.out.

println

("age="

+stu.

getage()

);//age=1

system.out.

println

("name="

+stu.

getname()

);//name=張三

system.out.

println

("stuno="

+stu.

getstuno()

);//stuno=s001

值傳遞和引用傳遞

幾乎每種語言都有值傳遞和引用傳遞.下面是我的一些曲解,只講現象,不涉及到任何的原理,主要是鬧著玩的.a 新交了個女朋友b.有一天他女朋友b看見a在吃冰激凌,b想吃,但是a是個 座有點小潔癖,不想讓b吃,於是給b買了個新的冰激凌說你吃這個吧,別碰我嘴裡這個.這就是值傳遞.a和b的值沒有任何關係,他們一...

值傳遞和引用傳遞

1.什麼是值傳遞和引用傳遞 值傳遞 方法呼叫時,實際引數的值copy乙份傳遞給形式引數,此時,有兩個相等的數值分別儲存於不同的記憶體位址上,因此,後面的方法中都是對形參位址上的數值進行修改。引用傳遞 方法呼叫時,實際引數的值 也就是位址 copy乙份傳遞給形式引數,此時,形參和實參的引用都指向同一儲...

值傳遞和引用傳遞

定義 通過建立乙個實際引數的副本,再傳遞給方法的形式引數,在main自身並不會被使用。這個在我們第一次使用編寫交換數的方法時,基本都會遇見,當我呼叫a,b兩個變數時,通過交換方法交換他們的位置,但是沒用,這就是值傳遞,乙個坑 public class switchnum switchnum a,b ...