Java學習筆記(二) 類與對象的介紹

來源:互聯網
上載者:User

類(對象)之間的關係

1. 關聯關係(某一個類的方法的參數是另一個類的對象) 

2. 繼承關係(XX是一種XX)

3. 彙總關係(整體和部分) (XX是XX的一部分)

4. 實現關係(類似C++的純虛函數,具體實現用子類來完成)

對象是Java程式的核心,在Java程式中“萬事萬物皆對象”

對象可以看成時靜態屬性(成員變數)和動態屬性(方法)的封裝體

成員變數可以是Java語言中任何一種資料類型(包括基本類型和參考型別)

在定義成員變數時可以對其初始化,如果不對其初始化,Java使用預設的值對其初始化(所有數實值型別的預設值都是0, 布爾類型初始值為false, 參考型別初始值為null)

注意:局部變數Java不會預設初始化

成員變數的作用範圍為整個類體

Java語言中除基本類型之外的變數類型都稱之為參考型別!!與C++不一樣

Java中的對象是通過引用對其操作的,例如:String S; 這是聲明了一個String類型的引用變數,會分配記憶體,但並沒有使它指向一個對象。
S = new String("HelloWorld");使用new語句建立了一個String類型的對象並用S指向它,以後可以通過S完成對其的操作

如何在記憶體中區分類和對象

1. 類是靜態概念,位於代碼區

2. 對象是new出來的,位於堆記憶體,類的每個成員變數在不同的對象中都有不同的值(除了靜態變數),而方法只有一份,在執行的時候才佔用記憶體

Java中的引用同C++中的引用不一樣,Java中的引用相同於指標,而C++的引用只是一個別名

對象的建立和使用

1. 必須使用new關鍵字建立對象

2. 使用對象(引用).成員變數或引用對象的成員變數

3. 使用對象(方法).方法(參數列表)來調用對象的方法

4. 同一類的不同對象有不同的成員變數儲存空間

5. 同一類的不同對象共用該類的方法

樣本:

class C {        int i;        int j;        ...main..{             C c1 = new C();             C c2 = new C();        }}

代碼存放在code segment中,當main方法執行的時候,先定義C類型的變數才c1(c1中的值不是實際的物理地址),會在棧中分配一個空間,然後new出一個對象在堆記憶體中,棧空間中的c1指向堆空間中剛new出來的那個對象.(感覺就是先建立指標再建立該指標指向的那個資料類型的執行個體,然後指標指向那個執行個體)

使用new + 構造方法 建立一個新的對象

構造方法是定義在java類中的一個用來初始化對象的函數

構造方法與類同名且沒有傳回值,若沒有定義構造方法,系統會預設生產一個空的構造方法,若自己定義了構造方法,系統就不會生產預設構造方法。注意:預設構造方法會將所有成員變數都初始化(所有能轉換為整數的類型都初始化為0,boolean初始化為false)如果構造方法前面加上了傳回值,那麼這個方法就變成了普通的方法,可通過對象名.成員函數名來調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.