JAVA基本数据类型和引用数据类型的参数传递详解
?
今天動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹?JAVA基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的參數(shù)傳遞,希望通過此文大家能夠熟悉JAVA基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的參數(shù)傳遞,下面就隨小編一起來了解一下JAVA基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的參數(shù)傳遞。
?
?
1、java基本數(shù)據(jù)類型的參數(shù)傳值
?
對于java基本數(shù)據(jù)類型,修改這個值并不會影響作為參數(shù)傳進(jìn)來的那個變量,因?yàn)樾薷牡氖欠椒ǖ木植孔兞?是一個副本。實(shí)參的精度級別應(yīng)等于或低于形參的精度級別,否則報錯。
?
class JB{
? ? void f(int x, int y){
? ? ? ? x=x+1;
? ? ? ? y=y+1;
? ? ? ? System.out.printf("參數(shù)x和y的值分別是:%d, %d ", x, y);
? ? }
}
public class CS {
? ? public static void main(String[] arg){
? ? ? ? int x=10;
? ? ? ? int y=12;
? ? ? ? JB jb=new JB();
? ? ? ? jb.f(x, y);??
? ? ? ? System.out.printf("main方法中x和y的值分別是:%d, %d ", x, y);
? ? }
}
?
結(jié)果:
?
參數(shù)x和y的值分別是:11, 13
?
main方法中x和y的值分別是:10, 12
?
?
2、java引用數(shù)據(jù)類型的參數(shù)傳值
?
java引用數(shù)據(jù)類型包括類、數(shù)組以及后面將要學(xué)習(xí)的接口。當(dāng)形參是引用類型時,實(shí)參傳給形參的值是對象的引用。如果修改形參引用的對象,那么實(shí)參引用的對象也會發(fā)生同樣的變化。因?yàn)閷?shí)參的引用拷貝給了形參,所以實(shí)參和形參引用同一個對象,對形參引用對象的修改就相當(dāng)于對實(shí)參引用對象的修改。
?
如果修改的不是形參引用的對象而是形參值本身,也就是讓形參指向其它對象,則實(shí)參值和實(shí)參引用的對象都不改變。
?
class A{
? ? int N;
? ? A(int n){
? ? ? ? N = n;
? ? }
? ? void setN(int n){
? ? ? ? N = n;
? ? }
? ? int getN(){
? ? ? ? return N;
? ? }
}
class A2 extends A{
?
? ? A2(int n) {
? ? ? ? super(n);
? ? }
}
class B{
? ? void f(A a){
? ? ? ? a.setN(12);
//? ? ? ? a = new A2(111);
? ? ? ? System.out.println("在執(zhí)行方法f時, 形參a修改了自己的N值");
? ? ? ? System.out.println("當(dāng)前形參mouse的N值: " + a.getN());
? ? }
}
?
main
?
?
B b = new B();
? ? ? ? A a = new A(2);
? ? ? ? System.out.println("在調(diào)用方法f之前,實(shí)參a的N值: "+ a.getN());
? ? ? ? b.f(a);
? ? ? ? System.out.println("在調(diào)用方法f之后, 實(shí)參a的N值: " + a.getN());
?
?
結(jié)果:
?
在調(diào)用方法f之前,實(shí)參a的N值: 2
?
在執(zhí)行方法f時, 形參a修改了自己的N值
?
當(dāng)前形參a的N值: 12
?
在調(diào)用方法f之后, 實(shí)參a的N值: 12
?
?
注意:形參指向其它對象這句話的理解,a = new A2(111);讓mouse又指向了另一個對象,所以他所修改后的值和實(shí)參沒有關(guān)系,實(shí)參的值和引用都不會改變。在代碼中新加入的A2就是繼承了A,通過方法傳入的是A(a)的對象的引用,把a(bǔ) = new A2(111);那么之后改變是A2的內(nèi)容,和A就無關(guān)了,所以A(實(shí)參)的引用對象和值都不變。
?
結(jié)果:
?
在執(zhí)行方法f時, 形參a修改了自己的N值
?
當(dāng)前形參a的N值: 111
?
在調(diào)用方法f之后, 實(shí)參a的N值: 2
?
?
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹的“JAVA基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的參數(shù)傳遞”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
總結(jié)
以上是生活随笔為你收集整理的JAVA基本数据类型和引用数据类型的参数传递详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java继承多态经典案例分享
- 下一篇: 开展Java的学习方向,看最新Java视