程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語言入門教程(九):Java語言中的值傳遞

Java語言入門教程(九):Java語言中的值傳遞

編輯:關於JAVA

在第八篇博文中,介紹了編寫方法體必須了解的基本知識點,初學者已經可 以自己寫簡單的例子進行練習。在練習過程中,我們不可能把所有的代碼都放在 main方法中,Java類一定會有或多或少的方法成員,調用這些方法將是必要的步 驟。而調用方法成員時,如果該方法有參數,就必須要傳遞實際參數給方法的形 式參數。所以了解Java語言中的值傳遞是非常必要的。

Java中的數據類型分兩種,基本數據類型和引用類型。所以本文中也將分別 對這兩種數據類型的值傳遞特征進行介紹。

1.基本數據類型的值傳遞:基本數據類型傳遞的是值。

如下程序:

package com.csst.test;
public class Test5 {
    /**
     * @param args
     */
    public void printX(int x){
       x++;
       System.out.println("printX: x="+x);
    }
    public static void main(String[] args) {
       // TODO Auto-generated method stub
       Test5 test5=new Test5();
       int x=10;
       test5.printX(x);
       System.out.println("main:x="+x);
    }
}

運行結果如下:

printX: x=11

main:x=10

可見,基本數據類型x傳遞給printX方法時,僅僅將值10傳遞給參數x,所以 參數x加1後,輸出了11,而main方法中的x仍然為10。

2、引用類型

引用類型傳遞的是虛地址。

如下程序:

package com.csst.test;
public class Test6 {
    /**
     * @param args
     */
    public void printName(Student stu){
       System.out.println("printName: name is "+stu.getName

());
    }
    public void printPwd(Student stu){
       stu.setPwd("abcdef");
       System.out.println("printPwd: pwd is "+stu.getPwd());
    }
    public static void main(String[] args) {
       // TODO Auto-generated method stub
       Test6 test6=new Test6();
       Student stu1=new Student("Rose");
       test6.printName(stu1);
       System.out.println("main: name is "+stu1.getName());
       Student stu2=new Student("John","123");
       test6.printPwd(stu2);
       System.out.println("main: pwd is "+stu2.getPwd());
    }
}
class Student{
    private String name;
    private String pwd;
    public String getPwd() {
       return pwd;
    }
    public void setPwd(String pwd) {
       this.pwd = pwd;
    }
    public Student() {
       super();
    }
    public Student(String name) {
       super();
       this.name = name;
    }
    public Student(String name, String pwd) {
       super();
       this.name = name;
       this.pwd = pwd;
    }
    public String getName() {
       return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

運行結果為:

printName: name is Rose

main: name is Rose

printPwd: pwd is abcdef

main: pwd is abcdef

在該類main方法中,將stu1和stu2傳遞給printName,printPwd時,是將 stu1,stu2的虛地址傳遞給了對應的方法參數。因此,在printName,printPwd中 打印出的name和pwd,與main中打印的name和pwd永遠相同,尤其在printPwd方法 中,通過參數改變了其pwd屬性後,main方法中的stu2的pwd屬性也隨之變化,足 以說明stu2與printPwd的參數本質上是一個對象。

通過本篇學習,可以基本了解Java語言中值傳遞的特征,進一步,初學者可 以繼續學習類與類之間的關系。

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