天天看點

java中面向對象的基礎學習

1.類的定義

類的組成是由屬性和行為兩部分組成

屬性:在類中通過成員變量來展現(類中方法外的變量)

行為:在類中通過成員方法來展現(和前面的方法相比去掉static關鍵字即可)

類的定義步驟:

①定義類

②編寫類的成員變量

③編寫類的成員方法

示例代碼:

2.對象的使用

建立對象的格式:

類名 對象名 = new 類名();

調用成員的格式:

對象名.成員變量

對象名.成員方法();

示例代碼

3.對象記憶體圖

單個對象記憶體圖

成員變量使用過程

java中面向對象的基礎學習

多個對象記憶體圖

java中面向對象的基礎學習

總結:

多個對象在堆記憶體中,都有不同的記憶體劃分,成員變量存儲在各自的記憶體區域中,成員方法多個對象共用的一份

多個對象指向相同記憶體圖

java中面向對象的基礎學習

總結

當多個對象的引用指向同一個記憶體空間(變量所記錄的位址值是一樣的)

隻要有任何一個對象修改了記憶體中的資料,随後,無論使用哪一個對象進行資料擷取,都是修改後的資料。

4.成員變量和局部變量

類中位置不同:成員變量(類中方法外)局部變量(方法内部或方法聲明上)

記憶體中位置不同:成員變量(堆記憶體)局部變量(棧記憶體)

生命周期不同:成員變量(随着對象的存在而存在,随着對象的消失而消失)局部變量(随着方法的調用而

存在,醉着方法的調用完畢而消失)

初始化值不同:成員變量(有預設初始化值)局部變量(沒有預設初始化值,必須先定義,指派才能使用)

5.封裝

private關鍵字

private是一個修飾符,可以用來修飾成員(成員變量,成員方法)

被private修飾的成員,隻能在本類進行通路,針對private修飾的成員變量,如果需要被其他類使用,提供相

應的操作

提供“get變量名()”方法,用于擷取成員變量的值,方法用public修飾

提供“set變量名(參數)”方法,用于設定成員變量的值,方法用public修飾

6.this關鍵字

this修飾的變量用于指代成員變量,其主要作用是(區分局部變量和成員變量的重名問題)

方法的形參如果與成員變量同名,不帶this修飾的變量指的是形參,而不是成員變量

方法的形參沒有與成員變量同名,不帶this修飾的變量指的是成員變量

7.this記憶體原理

this代表目前調用方法的引用,哪個對象調用的方法,this就代表哪一個對象

圖解:

8.封裝思想

封裝概述 是面向對象三大特征之一(封裝,繼承,多态) 是面向對象程式設計語言對客觀世界的模拟,客觀世界裡成員變量都是隐藏在對象内部的,外界是無法直接操作的

封裝原則 将類的某些資訊隐藏在類内部,不允許外部程式直接通路,而是通過該類提供的方法來實作對隐藏資訊的操作和通路 成員變量private,提供對應的getXxx()/setXxx()方法

封裝好處 通過方法來控制成員變量的操作,提高了代碼的安全性 把代碼用方法進行封裝,提高了代碼的複用性

7.構造方法

構造方法概述

構造方法是一種特殊的方法

作用:建立對象 Student stu = new Student();

格式:

public class 類名{

修飾符 類名( 參數 ) {

}

功能:主要是完成對象資料的初始化

構造方法的注意事項

構造方法的建立

如果沒有定義構造方法,系統将給出一個預設的無參數構造方法 如果定義了構造方法,系統将不再提供預設的構造

方法

構造方法的重載

如果自定義了帶參構造方法,還要使用無參數構造方法,就必須再寫一個無參數構造方法

推薦的使用方式

無論是否使用,都手工書寫無參數構造方法

重要功能!

可以使用帶參構造,為成員變量進行初始化

8.标準類制作

需求:定義标準學生類,要求分别使用空參和有參構造方法建立對象,空參建立的對象通過setXxx指派,有

參建立的對象直接指派,并通過show方法展示資料。