2017年——10年百度大神教你如何理解java核心技術——物件與類

JAVA全棧發表於2017-11-28

1:類

類是構造物件的模板或藍圖。由類構造物件的過程成為建立類的例項。

2:物件

物件的三個主要特性:

物件的行為-------可以對物件施加哪些操作,或可以對物件施加哪些方法?

物件的狀態-------當施加那些方法時,物件如何響應?

物件標識---------如何辨別具有相同行為與狀態的不同物件?

3:識別類

首先從設計類開始,然後再往每個類中新增方法。規則是在分析問題的過程中尋找名詞,而方法對應著動詞。

4:類之間的關係

依賴:是一種最明顯的、最常見的關係 uses-a

聚合:是一種具體且易於理解的關係 has-a

繼承:是一種用於表示特殊與一般關係的 is-a

5:構造器

1)與類同名

2)每個類可以有一個以上的構造器

3)構造器可以有0個、1個或多個引數

4)構造器沒有返回值

5)構造器總是伴隨著new操作儀器呼叫

注:不要再構造器中定義與例項域重名的區域性變數。

6:封裝的優點

需要獲得或設定例項域的值需要:

一個私有的資料域

一個公有的域訪問器方法;

一個公有的域更改器方法。

優點:改變內部實現,除了該類的方法之外,不會影響其他程式碼。

7:過載

如果多個方法有相同的名字、不同的引數、便產生了過載。編譯器必須挑選出具體執行哪個方法,它通過用各個方法給出的引數型別與特定方法呼叫所使用的值型別進行匹配來挑選出相應的方法。如果編譯器找不到匹配的引數,就會產生編譯時錯誤,因為根本不存在匹配,或者沒有一個比其他的更好。

8:無引數的構造器

很多類都包含一個無慘的構造器函式,物件由無引數構造器建立時,其狀態會設定為適當的預設值。

如果在編寫一個類時沒有編寫構造器,那麼系統就會提供一個無引數構造器。這個構造器將所有的例項域設定為預設值。於是,數值型為0、布林型為false、物件變數為null。

如果類中提供了至少一個構造器,但是沒有提供無引數的構造器,則在構造物件時如果沒有提供引數就會視為不合法。

注:僅當類沒有提供構造器的時候,系統才會提供一個預設的構造器。如果在編寫類的時候,給出了一個構造器,哪怕是很簡單的,要想讓這個類的使用者能夠採用下列方式構造例項: new ClassName()。

9:初始化模組

方法: 在構造器中設定值、在宣告中賦值。

呼叫構造器的具體處理步驟:

1)所有資料域被初始化為預設值(0、false、null)

2)按照在類宣告中出現的次序,依次執行所有域初始化語句和初始化塊。

3)如果構造器第一行呼叫了第二個構造器,則執行第二個構造器主體。

4)執行這個構造器的主體。

類的設計技巧

1:一定要保證資料私有。

這是最重要的;絕對不要破壞封裝性。有時候,需要編寫一個訪問器方法或者更改器方法,但是最好還是保持例項域的私有性。很多慘痛的經驗告訴我們,資料的表示形式很可能會改變,但它們的使用方式卻不會經常發生變化。當資料保持私有時,它們的表示形式的變化不會對類的使用產生影響,即時出現bug也易於檢測。

2:一定要對資料初始化。

Java不對區域性變數進行初始化,但是會對物件的例項進行初始化。最好不要依賴於系統的預設值,而是應該顯示地初始化所有的資料,具體的初始化方式是可以提供預設值,也可以是在所有構造器中設定預設值。

3:不要再類中使用過多的基本型別。

就是說,用其他的類代替多個相關的基本型別的使用。這樣會使類更加易於理解且易於修改。

4:不是所有的域都需要獨立的域訪問器和域更改器。

5:將職責過多的類進行分解。

6:類名和方法名要能夠體現他們的職責。

版權宣告:本文為博主原創文章,未經博主允許不得轉載。

注:加群要求 學習交流群:450936584

1、想學習JAVA這一門技術, 對JAVA感興趣,想從事JAVA工作的。
2、工作0-5年,感覺自己技術不行,想提升的
3、如果沒有工作經驗,但基礎非常紮實,想提升自己技術的。
4、還有就是想一起交流學習的。
5、小號加群一律不給過,謝謝。
群內每天會分享最新的視訊和資料,可以免費領取學習視訊和資料

轉發此文章請帶上原文連結,否則將追究法律責任!

相關文章