類的高階概念

2021-07-14 17:04:32 字數 2402 閱讀 9331

封裝:組裝和資訊隱藏

組裝:類的定義就是組裝(屬性、行為)

資訊隱藏:訪問修飾符(看修飾符分情況隱藏)

方法實現:體現的是呼叫者的資訊被隱藏,呼叫者無需知道方法的具體步驟,只關心效果(功能)的達成

封裝的好處:

類的成員變數可以變成唯讀或者只寫

類可以對儲存在其他成員變數中的內容有乙個整體的控制

類的使用者不需要知道類是如何儲存資料的

方法實現中特殊的實現方法:get和set方法

對資料的校驗的時候可以在set方法內就直接加限制條件

實現資訊的隱藏也可以在get和set方法中

靜態類成員:

類名.方法名

• static修飾的全域性變數叫做靜態變數,也叫類變數,類變數的值為所有物件所共享

• 除了修飾方法外還可以修飾屬性,修飾屬性是靜態屬性或者是類屬性

• 用static修飾的屬性:全類共享乙個值,靜態屬性與物件無關,屬於類級別,所以才有別名:類屬性。(類+.)

• 進來的最後乙個值,改掉全類的值,全類都是這個值

• 在記憶體中:存在於資料段的靜態區

• 用static修飾屬性的時候,常量屬性可直接加static

• 變數屬性在加static要判斷全類是否是共享乙個值,如全類共享這乙個值的話就可以加static

• 當沒有產生物件的時候,也能使用類名、屬性來呼叫

在機制上:在執行之前,即載入期,main方法執行之前就加進去了,static修飾的屬性在載入期即被產生與記憶體資料段的靜態區中了

static在方法上:

• static修飾的方法可以直接用類進行呼叫,與物件無關,屬於類級別,別名:類方法

• 可以不用建立物件,可以直接呼叫

• 凡是用static修飾的方法和屬性,在載入期都會被優先載入

• 限制:static的方法不能操作非static的屬性和其他方法(靜態的不能呼叫非靜態的,非靜態的是後記載的,因此可以呼叫靜態的和非靜態的)

static使用範圍:工具類的工具方法設定為static(不改變物件裡本身的東西看作是工具)

靜態初始化塊

關鍵字static的另一種那個用法

形如:public class 類{

static{

//語句}

} 靜態初始化**塊是在類載入的時候自動執行,是在main方法之前

乙個類裡面的static如果在main方法裡沒有new出來是不會執行的

而且執行的時候只會執行那個一次

非靜態初始化塊:例項初始化塊

有static的話就是跟類有關,跟物件沒關

沒有static的時候就是跟物件有關

例項初始化塊會被執行多次,只要產生物件就會被執行

例項初始化塊,是在物件產生的時候自動執行

例項初始化塊是在構造方法之前

例項初始化塊中的語句在任何父類構造器呼叫之後,在子類構造器呼叫之前執行。當前物件被例項化,並且類包含有例項初始化塊時,下面的事件按照順序發生:

1. 子類中相應的構造器被呼叫

2. 執行對super的呼叫,控制流程跳轉到相應的父類構造器

3. 父類構造器執行完,控制流程跳轉回子類構造器

4. 在該子類構造器中的super()後面的任何語句執行之前,例項初始化塊執行

最後,執行子類構造器中super()後面的語句

static總結:

1.凡是用static修飾的都與物件無關,與類有關

2.凡是用static修飾的都是優先被載入的

在修飾屬性時:

• 是類屬性:全類共享乙個值

• 存放於資料段的靜態區,載入期即入

• 常量屬性用static

• 變數屬性達到全類共享乙個值可以用

在修飾方法時:

• 類方法:方法中只能操作其他static方法或者是操作其他static的屬性

• 工具類的工具方法一般設定為static

• 構造方法是產生物件的,因此在構造方法中不能使用static

在修飾構造時:不能使用static

初始化塊:

• 加了static的是靜態初始化塊

• 不加的static的是非靜態初始化塊

靜態初始化塊:

• 在類載入期被執行,執行在main方法之前,只執行一次

• 用在類載入期,執行一些準備工作的**,所以常用

• 使用頻率常常比靜態方法和靜態屬性高

非靜態初始化塊(例項初始化):

• 在物件本產生的時候執行,可以執行多次

• 在本類構造之前,父類構造之後

因為和構造方法有部分衝突,所以很少用

訪問修飾符:

類的高階概念

訪問修飾符包括以下四種 public 可以被任意類屬性呼叫,範圍最大 protected 受保護 只能被同包或者子類訪問 預設 什麼都不寫 只能被同一包中其他類訪問 private 私有 只能被本類訪問 封裝的好處 可以使資料更加安全,不容易被更改。靜態成員 使用static修飾的類中成員 使用方法...

類的的高階概念

訪問修飾符 用來修飾定義在類中的屬性和行為可以被其他人訪問修飾的符號 本類 同包 不同包 子類 非子類 子類 非子類 private y n n n n default y y y n n protected y y y y n public y y y y y private私有 只有本類可以訪問...

Qmake高階概念

迄今為止,我們見到的qmake專案檔案都非常簡單,僅僅是一些name value和name value的列表行。qmake提供了很多更強大的功能,比如你可以使用乙個簡單的專案檔案來為多個平台生成makefile。到目前為止,你已經看到在專案檔案中使用的 操作符和 操作符。這裡能夠提供更多的可供使用的...