程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java 交流兩個變量的數值完成辦法

Java 交流兩個變量的數值完成辦法

編輯:關於JAVA

Java 交流兩個變量的數值完成辦法。本站提示廣大學習愛好者:(Java 交流兩個變量的數值完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java 交流兩個變量的數值完成辦法正文


1、參數傳遞辦法

為處理題目成績,起首引見參數傳遞辦法。今朝各類法式設計說話的參數傳遞辦法重要有三種:

1.按值傳遞
2.按援用傳遞
3.按指針傳遞

個中按值傳遞表現辦法(函數)吸收的是挪用者供給的變量的拷貝,不轉變參數的值;按援用傳遞表現辦法(函數)吸收的挪用者供給的變量地址;按指針傳遞表現辦法(函數)吸收的是挪用者供給的指針的拷貝,不轉變指針的值和地址,但可以轉變指針所指向的地址。

2、Java參數傳遞辦法

Java供給的參數傳遞辦法,很遺憾只要一種,按值傳遞。也就是說,辦法獲得的是一切參數值的一個拷貝,辦法不克不及修正傳遞給它的參數變量的內容。

Java的辦法參數類型可以分為兩類:

1.根本數據類型
2.對象援用

有過Java開辟經歷的同伙都曉得,關於根本數據類型,Java辦法沒法轉變變量內容。那對自界說類的對象援用能否也不克不及修正內容呢?可以經由過程一個簡略的例子解釋。代碼以下:

pubpc class MyClass{
  private Object num;

  pubpc MyClass(Object num){
    this.num=num;
  }
  
  pubpc Object getNum() {
    return num;
  }

  pubpc void setNum(Object num) {
    this.num = num;
  }
}
pubpc class Main {
  
  pubpc static void change(MyClass myClass){
    myClass.setNum(100);
  }
  
  
  
  pubpc static void main(String[] args){
    MyClass a=new MyClass(10);
    System.out.println("挪用change辦法前的值為:"+a.getNum());
    change(a);
    System.out.println("挪用change辦法後的值為:"+a.getNum());
  }
  
}

下面代碼履行輸入成果以下:

從成果中可以看出,change辦法可以或許修正對象的狀況。也就是說Java辦法可以轉變對象的參數狀況。那這能否意味著Java辦法關於自界說的數據類型(自界說類)的參數采取的是援用傳遞?為了確認成果可以編寫個簡略例子,一切的自界說類依然是下面的MyClass。代碼以下:

pubpc static void swap(MyClass a,MyClass b){
    MyClass tmp=a;
    a=b;
    b=tmp;
  }
  
  pubpc static void main(String[] args){
    MyClass a=new MyClass(10);
    MyClass b=new MyClass(100);
    System.out.println("交流之前a的值為:"+a.getNum());
    System.out.println("交流之前b的值為:"+b.getNum());
    swap(a,b);
    System.out.println("交流以後a的值為:"+a.getNum());
    System.out.println("交流以後b的值為:"+b.getNum());
  }
}

履行成果以下:

經由過程下面成果可以發明,Java辦法對自界說類的參數傳遞應用的依然是值傳遞,不是援用傳遞。那為何Java辦法可以或許修正對象狀況呢?

可以斟酌挪用change辦法的詳細履行進程,從中尋覓謎底。

挪用change辦法事,詳細的履行進程是:

myClass被初始化成實參a的copy,這是對對象的援用。

setNum辦法運用於這個對象的援用。myClass和a同時援用的誰人MyClass對象的num變成了100。

辦法停止後,參數變量myClass不再應用。而a持續援用誰人num變成100的MyClass對象。以下圖所示。

所以,Java辦法可以或許完成轉變對象參數狀況的緣由是:辦法獲得的是對象援用的拷貝,對象援用及辦法中的其他拷貝同時援用統一個對象。

如今,總結一下Java的辦法參數應用:

辦法不克不及修正一個根本數據類型的參數;

辦法可以轉變對象參數的狀況;

辦法不克不及讓對象參數援用一個新的對象(緣由參考挪用change辦法時的詳細履行進程)。

3、交流變量的數值

既然曾經知其所以然,那末知其然就不是難事了。直接貼出我的小我代碼:

pubpc static void swap(MyClass a,MyClass b){
    Object tmp=a.getNum();
    a.setNum(b.getNum());
    b.setNum(tmp);
}

履行成果以下:

交流有用。

參考文獻:Java焦點技巧 卷Ⅰ。

以上這篇Java 交流兩個變量的數值完成辦法就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved