java學習記錄(三):引用類型的概念

1、什麼是引用類型
 
    引用類型(reference type)指向一個對象,不是原始值,指向對象的變量是引用變量。
 
    在java裏面除去基本數據類型的其它類型都是引用數據類型,自己定義的class類都是引用類型,可以像基本類型一樣使用。

   
 示例如下:

    public class MyDate {
        private int day = 8;
        private int month = 8;
        private int year = 2008;
        private MyDate(int day, int month, int year){...}
        public void print(){...}
    }
    public class TestMyDate {
        public static void main(String args[]) {
            //這個today變量就是一個引用類型的變量
            MyDate today = new MyDate(23, 7, 2008);
        }
    }

2、引用類型的賦值

   
 在java編程語言中,用類的一個類型聲明的變量被指定爲引用類型,這是因爲它正在引用一個非原始類型,這對賦值具有重要的意義。如下代碼:

    int x = 7;
    int y = x;
    String s = "Hello";
    String t = s;

    四個變量被創建:兩個原始類型 int 和兩個引用類型String。x的值是7,而這個值被複制到y;x和y是兩個獨立的變量且其中任何一個的進一步的變化都不對另外一個構成影響。至於變量s和t,只有一個String對象存在,它包含了文本"Hello",s和t均引用這個單一個對象。

    java中的引用類型概念

    如果將變量t重新定義爲t="World";則新的對象World被創建,而t引用這個對象。      
      
     java中的引用類型概念

3、按值傳遞和按引用傳遞的區別

    1)按值傳遞
   
    指的是在方法調用時,傳遞的參數是按值的拷貝傳遞。示例如下:

1.    public class TempTest {
2.        private void test1(int a) {
3.            // 做點事情
4.            a++;
5.        }
6.       
7.        public static void main(String args[]) {
8.            TempTest t = new TempTest();
9.            int a = 3;
10.            t.test1(a);//這裏傳遞的參數a就是按值傳遞。
11.            System.out.printIn("main方法中的a===" + a);
12.         }
13.     }
   
    按值傳遞的重要特點:傳遞的是值的拷貝,也就是說傳遞後就互不相關了。第9行的a和第2行的a是兩個變量,當改變第2行的a的值,第9行a的值是不變的,所以打印結果是3。

    main  方法中的a 爲 3
    test1 方法中的a 爲 4
   
    我們把第9行的a稱之爲實參,第2行的a稱之爲形參;對於基本數據類型,形參數據的改變,不影響實參的數據。

    2)按引用傳遞

    指的是在方法調用時,傳遞的參數是按引用進行傳遞,其實傳遞的是引用的地址,也就是變量所對應的內存空間的地址。

    示例如下:

1.    public class TempTest {
2.   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章