天天看點

第三周-自主學習任務-面向對象基礎與類的識别

1.什麼樣的方法應該用static修飾?不用static修飾的方法往往具有什麼特性?Student的getName應該用static修飾嗎?

修飾方法:當一個方法或者變量需要初始化加載,或者是經常被調用的時候可以加上static。用static修飾的方法可以用類名直接調用,不用的一定要先執行個體化一個對象然後才可以調用。

特性:static修飾的變量和方法,在類加載時即被初始化,可直接通過類名.變量名和類型.方法名進行調用。非static修飾的方法可以引用static 修飾的變量,在類加載過程中,static修飾的變量優先完成加載,是以當非static修飾的方法,完成加載後可以引用static 修飾的變量。

是否修飾:答案是否定的,student的表示是非靜态的。

2.購物車案例中,使用了什麼方法将問題描述中的類、方法、屬性找出來?方法與屬性到底屬于哪個類,要怎麼判定呢?

方法:核心方法是分析文字描述,對于問題中的名詞可以用類和屬性就行區分,對于問題中的動詞可以用方法進行區分。

判定:既然要歸屬于這個類,那麼肯定是類中包含了這一個屬性或者方法,是以根據包含關系即可分出其歸屬。

3.一個項目中有很多類。項目中要怎麼管理這些代碼呢?

管理:首先可以根據類的作用進行區分,再者可以根據作用進行分支處理,最後可以通過包進行分裝。

4.閱讀《阿裡巴巴Java開發手冊 終極版(1.3.0)》,寫出至少7條Java程式設計規範。應包含如下幾個方面:變量命名、類命名、方法命名、常量命名、包命名、代碼格式、OOP規約。

變量命名:采用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫;變量名不應以下劃線或美元符号開頭;盡量避免單個字元的變量名,除非是一次性的臨時變量。臨時變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字元型;不采用匈牙利命名法則,對不易清楚識别出該變量類型的變量應使用類型名或類型名縮寫作其字尾;元件或部件變量使用其類型名或類型名縮寫作其字尾;集合類型變量,例如數組和矢量,應采用複數命名或使用表示該集合的名詞做字尾。

類命名:類或接口名是個一名詞,采用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富于描述。使用完整單詞,避免用縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)。

方法命名:方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫;取值類可使用get字首,設值類可使用set字首,判斷類可使用is(has)字首。

常量命名:全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。

包命名:包名一律小寫, 少用縮寫和長名;采用以下規則:

[基本包].[項目名].[子產品名].[子子產品名]...
      

不得将類直接定義在基本包下,所有項目中的類、接口等都應當定義在各自的項目和子產品包中。

代碼格式:單行太長需換行,方法體内的執行語句組、變量的定義語句組、不同的業務邏輯之間或者不同的語義之間插入一個空行。相同業務邏輯和語義之間不需要插入空行。

OOP規約:避免通過一個類的對象引用通路此類的靜态變量或靜态方法,無謂增加編譯器解析成本,直接用類名來通路即可。所有的覆寫方法,必須加@ Override 注解。對外暴露的接口簽名,原則上不允許修改方法簽名,避免對接口調用方産生影響。接口過時必須加@Deprecated 注解,并清晰地說明采用的新接口或者新服務是什麼。Object 的 equals 方法容易抛空指針異常,應使用常量或确定有值的對象來調用equals。所有的相同類型的包裝類對象之間值的比較,全部使用 equals 方法比較。(注意空指針)