第4章類、對象和方法

第4章類、對象和方法
瞭解類的基礎知識、瞭解如何創建類、理解如何給引用變量賦值、創建方法,返回值,並使用形參,使用return關鍵字、從方法返回值、向方法添加形參,使用構造函數,創建帶形參的構造函數。
這一章也是比較基礎的,主要收穫搞清楚new運算符和引用,並學習了Java垃圾回收。

如何創建對象

下面這行代碼聲明瞭一個名爲minivan的Vehicle類型的變量。

Vehicle minivan = new Vehicle();

該聲明完成兩個功能。首先,它聲明一個名爲minivan的Vehicle類型的變量。該變量有定義對象,它是一個可以引用對象的變量。其次聲明創建了對象的一個實際的副本,並把對象的引用賦值給了minivan。new運算符爲對象分配內存,並返回一個對它的引用。該引用有new分配的對象在內存中的地址。然後,把引用存儲在變量中。因此,在Java中,必須動態分配所有的類對象。
把上面的代碼拆開來寫:

Vehicle minivan;
minivan = new Vehicle();

第一行把nimivan聲明爲Vehicle類型對象的引用。nimivan是一個可以引用對象的變量,但是它本身不是對象。因此,minivan不引用對象。
第二行創建了一個新的Vehicle對象,並把它的引用賦值給了minivan。
new運算符可以用於創建任何類類型的對象。new運算符返回對新創建對象的引用。

引用變量和賦值
Vehicle car1 = new Vehicle();
Vehicle car2 = car1;

car1和car2引用相同的對象。但是car1和car2是沒有關係的。對car2的賦值只是改變了car2所引用的對象而已。

void方法的返回方式

void方法的返回方式有兩種,到達右花括號或者執行return語句。
注意void方法中可以寫這樣的return語句的。

public static void display(){
        int i=3;
        if (i>=1){
            System.out.println(i);
            i--;
        }else return;
    }
垃圾回收

Java的垃圾回收機制會自動回收對象,透明的在後臺操作。具體工作方式爲:當不存在對某對象的引用時,該對象就被認定爲沒有存在的必要了,它所佔用的內存就要被釋放,被回收的內存可以用於以後的分配。
使用finalize()方法來演示垃圾回收和終止。
protected void finalize()
在對象最後被垃圾回收器銷燬之前調用它。

public class FDemo {
    int x;
    FDemo(int i){
        x=i;
    }
    protected void finalize(){
        System.out.println("Finalizing "+x);
    }
    void generator(int i){
        FDemo o = new FDemo(i);
    }
}
public class Finalize {
    public static void main(String[] args){
        int count;
        FDemo ob = new FDemo(0);
        for (count=1;count<1000000;count++){
            ob.generator(count);
        }
    }
}

創建和銷燬1000000個對象

發佈了39 篇原創文章 · 獲贊 31 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章