1. 程式人生 > >java學習第十天

java學習第十天

這裡寫圖片描述

類的高階概念
訪問修飾符
訪問修飾符是用於修飾我們定義在類中的行為和方法在什麼情況下能夠被別人訪問的符號。
訪問修飾符:
Private 私有 只能本類訪問
Defaule 預設 跟類位於同一個包下面的所有類都可以訪問
Protected 受保護的 同包中的類和其他包中的子類,都可以訪問
Public 公共的 任何包中的類,都可以訪問

封裝
用於組裝類的屬性和行為,並且通過訪問修飾符以及方法的包裝來隱藏類的成員的方式。
封裝的優點
1.類的創元變數通過訪問器和修改器進行控制,可以成為只讀或者是隻寫,不再是外部可以任意操作
2.類可以通過對方法的控制,完成對成員變數的內容的整體控制,比如:口令(天王蓋地虎),年齡控制,大小控制……
3.類還可以改變一個成員變數的資料型別,從而讓類的呼叫不能輕易的,憑藉經驗就判斷出類的成員變數,比如birthday ,變成int year,month,day;

Static 可選修飾符
修飾全域性變數:
static在修飾全域性變數時,全域性變數可以被稱為靜態變數或類變數,經過static修飾的全域性變數已經和物件無關,直接上升稱類的變數,它的資料已經不存在每個單獨物件身上,而是存在方法區的資料塊的靜態區域中。
非靜態成員變數必須要等到例項化物件以後才能呼叫,而靜態成員變數,在類載入完成之後就已經可以直接呼叫。

修飾方法:
static在修飾方法的時候,對應的方法可以被稱為類方法,與類變數一樣,同樣已經與物件無關,直接上升為類的行為。非靜態方法必須等到例項化物件之後,採用呼叫,而靜態方法,在類載入之後,就可以直接呼叫。

Static修飾的內容存在於記憶體的時機是類載入的時候。

Static在修飾全域性變數是,一般用於修飾常量,主要目的:節約堆記憶體,將變數定義在靜態區域中,而不是每個物件的自身。
Static在修飾方法時,一般用於修飾工具類的工具方法,比如:Math類,Arrays類,StringUtils類、包括超級陣列類。
靜態方法中,不能訪問非靜態成員(屬性、方法) 其原因是:
1.靜態方法在載入時,非靜態屬性還沒發呼叫。
2.假設可以呼叫,那麼若果存在成千上萬個物件,我在呼叫誰的屬性或者是呼叫誰的行為?
Static無法修飾建構函式,因為static修飾的屬性或者行為都與物件無關,但是建構函式是專門產生物件的函式。

初始化塊
初始化塊又分為例項化初始化塊和靜態初始化塊,位置放置在屬性之下,構造器之上。

例項初始化塊:
語法:
{

}

主要用於初始化成員變數,一般是物件例項化時才會執行,並且是例項一次執行一次,他執行在建構函式執行程式碼的第3到第4步之間。可以使用有參構造替代例項初始化塊。

靜態初始化塊:
語法:
Static {

}

主要用於在類載入時,做一些前期的準備工作,比如:檢查資料庫是否連線正常,檢查配置檔案是否存在,或者是提前讀取某些檔案內容到記憶體中來……
它的執行實在類載入時就開始執行,後面直接可以使用,無需創造物件。