封裝:組裝和資訊隱藏
組裝:類的定義就是組裝(屬性、行為)
資訊隱藏:訪問修飾符(看修飾符分情況隱藏)
方法實現:體現的是呼叫者的資訊被隱藏,呼叫者無需知道方法的具體步驟,只關心效果(功能)的達成
封裝的好處:
類的成員變數可以變成唯讀或者只寫
類可以對儲存在其他成員變數中的內容有乙個整體的控制
類的使用者不需要知道類是如何儲存資料的
方法實現中特殊的實現方法: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。到目前為止,你已經看到在專案檔案中使用的 操作符和 操作符。這裡能夠提供更多的可供使用的...