面向對象進階(Java程序設計)

落紅不是無情物,化作春泥更護花。
點贊再來,養成習慣。


文章目錄
1.成員變量
2.this關鍵字
3.隱藏和封裝
4.static關鍵字
學習目標

在這裏插入圖片描述


成員變量

類的成員變量和類變量區別:
類的成員分爲屬性和方法,屬性其實就是類的成員變
量,也稱爲全局變量,除了類的成員變量外,類的方法也
可以聲明變量,我們稱局部變量。

類中的成員變量在整個類範圍都可以使用,包括類中的方法而方法中定義的局部變量作用域只能在方法中使用。
成員變量分爲類屬性和實例屬性兩種,定義屬性時沒有加Static修飾符修飾的就是實例屬性,代表該類的每個對象都擁有該屬性。而加了static修飾的屬性稱爲類屬性,屬於類所有,整個項目中僅此一份,屬於共享使用。

語法

[ <修飾符> ] [ static ] [ final ] <變量類型> <變量名>

(1)static:表示一個類的成員變量,即靜態成員變量。
(2)final:表示是一個常量。

示例代碼:
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

頂部

this關鍵字

this關鍵字和方法調用:
在類的定義時通過this關鍵字可訪問到該類的實例屬性,this其實就個指向當前類的對象的地址。最大的作用:讓類中的個方法訪問該類中的另個方
法或實例成員變量。

通過THIS關鍵字來解決成員變量和局部變量同名的問題

  • this :代表當前對象的引用(誰調用就代表誰)。
  • this.成員變量 ‐‐ 本類的
  • this.成員方法名() ‐‐ 本類的
  • this(…) ‐‐ 本類的構造方法

示例:
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

頂部

隱藏和封裝

類的成員封裝:
封裝是面向對象三大特徵之一,封裝的主要意思:將該隱藏的隱藏,該開放的開發
封裝目的是提高項目中屬性或方法的安全性,隱藏內部實現細節。

JAVA中的封裝可以實現以下目的:

  • 1.隱藏類的實現細節
  • 2.讓使用者能通過事先預定的方法訪問數據
  • 3.可以對數據進行檢查提高數據的可用性
  • 4.便於修改,提高代碼的可維護性

原則
將屬性隱藏起來,若需要訪問某個屬性,提供公共方法對其訪問。

封裝的步驟
(1) 使用 private 關鍵字來修飾成員變量。
(2) 對需要訪問的成員變量,提供對應的一對 getXxx 方法 、 setXxx 方法。

封裝的操作——private關鍵字
private的含義
(1) private是一個權限修飾符,代表最小權限。
(2)可以修飾成員變量和成員方法。
(3) 被private修飾後的成員變量和成員方法,只在本類中才能訪問。

private的使用格式

private 數據類型 變量名 ;

1 . 使用 private 修飾成員變量,代碼如下:
2.
2 . 提供 getXxx 方法 / setXxx 方法,可以訪問成員變量,代碼如下:
在這裏插入圖片描述
封裝優化1——this關鍵字

this的含義
this代表所在類的當前對象的引用(地址值),即對象自己的引用。
記住 :方法被哪個對象調用,方法中的this就代表那個對象。即誰在調用,this就代表誰。

this使用格式

this.成員變量名;

3 .使用 this 修飾方法中的變量,解決成員變量被隱藏的問題,代碼如下:
在這裏插入圖片描述
小貼士:方法中只有一個變量名時,默認也是使用 this 修飾,可以省略不寫。

封裝優化2——構造方法

當一個對象被創建時候,構造方法用來初始化該對象,給對象的成員變量賦初始值。
小貼士:無論你與否自定義構造方法,所有的類都有構造方法,因爲Java自動提供了一個無參數構造方法, 一旦自己定義了構造方法,Java自動提供的默認無參數構造方法就會失效。

構造方法的定義格式
在這裏插入圖片描述
構造方法的寫法上,方法名與它所在的類名相同。它沒有返回值,所以不需要返回值類型,甚至不需要void。使用 構造方法後,代碼如下

在這裏插入圖片描述

注意事項
1 . 如果你不提供構造方法,系統會給出無參數構造方法。
2 . 如果你提供了構造方法,系統將不再提供無參數構造方法。
3 . 構造方法是可以重載的,既可以定義參數,也可以不定義參數。

標準代碼——JavaBean(擴展)
JavaBean 是 Java語言編寫類的一種標準規範。符合 JavaBean 的類,要求類必須是具體的和公共的,並且具有無 參數的構造方法,提供用來操作成員變量的 set 和 get 方法。
在這裏插入圖片描述
編寫符合 JavaBean 規範的類,以學生類爲例,標準代碼如下:
在這裏插入圖片描述
測試類,代碼如下:
在這裏插入圖片描述
在這裏插入圖片描述

頂部

static關鍵字

概述
關於 static 關鍵字的使用,它可以用來修飾的成員變量和成員方法,被修飾的成員是屬於類的,而不是單單是屬 於某個對象的。也就是說,既然屬於類,就可以不靠創建對象來調用了。

類變量
當 static 修飾成員變量時,該變量稱爲類變量。該類的每個對象都共享同一個類變量的值。任何對象都可以更改 該類變量的值,但也可以在不創建該類的對象的情況下對類變量進行操作。
類變量:使用 static關鍵字修飾的成員變量。

定義格式:
在這裏插入圖片描述
示例:比如說,基礎班新班開班,學員報到。現在想爲每一位新來報到的同學編學號(sid),從第一名同學開始,sid爲 1,以此類推。學號必須是唯一的,連續的,並且與班級的人數相符,這樣以便知道,要分配給下一名新同學的學 號是多少。這樣我們就需要一個變量,與單獨的每一個學生對象無關,而是與整個班級同學數量有關。
所以,我們可以這樣定義一個靜態變量numberOfStudent,代碼如下:
在這裏插入圖片描述
在這裏插入圖片描述
靜態方法
當 static 修飾成員方法時,該方法稱爲類方法 。靜態方法在聲明中有 static ,建議使用類名來調用,而不需要 創建類的對象。調用方式非常簡單。

類方法:使用 static關鍵字修飾的成員方法,習慣稱爲靜態方法。

定義格式:
在這裏插入圖片描述

靜態方法調用的注意事項:

  • 靜態方法可以直接訪問類變量和靜態方法。
  • 靜態方法不能直接訪問普通成員變量或成員方法。反之,成員方法可以直接訪問類變量或靜態方法。
  • 靜態方法中,不能使用this關鍵字。

小貼士:靜態方法只能訪問靜態成員。

調用格式
被static修飾的成員可以並且建議通過類名直接訪問。雖然也可以通過對象名訪問靜態成員,原因即多個對象均屬 於一個類,共享使用同一個靜態成員,但是不建議,會出現警告信息。

格式:
在這裏插入圖片描述
調用演示,代碼如下:
在這裏插入圖片描述
靜態原理圖解

static 修飾的內容:

  • 是隨着類的加載而加載的,且只加載一次。
  • 存儲於一塊固定的內存區域(靜態區),所以,可以直接被類名調用。
  • 它優先於對象存在,所以,可以被所有對象共享。
    在這裏插入圖片描述

靜態代碼塊

  • 靜態代碼塊:定義在成員位置,使用static修飾的代碼塊{ }。
  • 位置:類中方法外。
  • 執行:隨着類的加載而執行且執行一次,優先於main方法和構造方法的執行。

格式:
在這裏插入圖片描述

作用:給類變量進行初始化賦值。用法演示,代碼如下:

在這裏插入圖片描述
小貼士:static 關鍵字,可以修飾變量、方法和代碼塊。在使用的過程中,其主要目的還是想在不創建對象的情況 下,去調用方法。
Arrays類,Math類兩個工具類,能體現static 方法的便利。


頂部

學習目標

  • 能夠說出成員變量和局部變量的區別
  • 能夠理解private關鍵字的含義
  • 能夠說出this關鍵字可以解決的問題
  • 能夠理解構造方法的含義
  • 能夠用封裝的思想定義一個標準類
  • 能夠理解static關鍵字
  • 能夠寫出靜態代碼塊的格式

在這裏插入圖片描述

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