靜態變量可以被繼承嗎,(1)封裝 (2)static關鍵字 (3)繼承

 2023-11-19 阅读 17 评论 0

摘要:1.封裝(重中之重)1.1 基本概念 通常情況下,可以在測試類中給成員變量進行賦值,當給定的數值合法但不合理時,無論是編譯還是運行階段都不會報錯或給出提示,此時與現實生活不符。 為了避免上述問題的發生,就需要對成員變量進行密封包裝處理&

1.封裝(重中之重)
1.1 基本概念
通常情況下,可以在測試類中給成員變量進行賦值,當給定的數值合法但不合理時,無論是編譯還是運行階段都不會報錯或給出提示,此時與現實生活不符。
為了避免上述問題的發生,就需要對成員變量進行密封包裝處理,該技術就叫封裝,換句話說,封裝就是一種保證成員變量值合理性的機制。

1.2 封裝的流程
(1)私有化成員變量,使用private關鍵字修飾;
(2)提供公有的get成員變量和set成員變量方法,并在方法體中進行合理值的判斷;
(3)在構造方法中調用set成員變量的方法來進行判斷;

靜態變量可以被繼承嗎。2.static關鍵字(重點)
2.1 基本概念
通常情況下,成員變量都隸屬于對象層級,也就是每個對象在堆區中都有獨立的內存空間記錄各自的成員變量信息,當所有對象中的某個成員變量數值完全相同時,若每個對象還各自記錄則會造成內存空間的浪費。
為了避免上述問題的發生,則使用static關鍵字修飾成員變量,表示"靜態的"含義,此時該成員變量由對象層級提升為類層級被所有對象共享,該成員變量會隨著類的加載而準備就緒,通常建議使用類名.的方式訪問。
static關鍵字可以修飾成員變量,也可以修飾成員方法。

2.2 使用方式
(1)在非靜態的成員方法中,既可以訪問非靜態的成員也可以訪問靜態的成員;
(成員:成員變量 + 成員方法 => 被所有對象共享)
(2)在靜態的成員方法中,只能訪問靜態成員不能訪問非靜態成員;
(成員:成員變量 + 成員方法 => 調用靜態方法時可能還沒有創建對象)
(3)只有隸屬于類層級被所有對象共享的內容才可以使用static修飾,
也就是不能濫用static關鍵字;

案例:
自定義Singleton類實現封裝。
自定義TestSingleton類,要求在main()方法中能得到且只能得到Singleton類的一個對象。

java繼承實現關鍵字、2.3 單例設計模式(重中之重)
(1)基本概念
在某些特殊場合中,對于能創建且只能創建一個對象的類來說,叫做單例類。
設計單例類的思想和模式叫做單例設計模式。

(2)實現流程
a.私有化構造方法,使用private關鍵字修飾;
b.提供本類類型的引用指向本類類型的對象并使用private static關鍵字共同修飾;
c.提供公有的get成員變量方法負責將該對象返回出去;

(3)實現方式
單例設計模式主要分為兩種:餓漢式 和 懶漢式,在以后的開發中推薦使用餓漢式。

java static關鍵字。3.繼承(重中之重)
人類:
特征:姓名、年齡
行為:吃飯、娛樂
學生類 繼承 人類:
特征:學號
行為:學習
教師類 繼承 人類:
特征:工號
行為:講課
工人類 繼承 人類:
特征:薪水
行為:工作
... ...

3.1 基本概念
當多個類中有相同的特征和行為時,則可以將共性的內容提取出來組成一個公共類,讓多個類分別吸收公共類中已有的特征和行為,在各個類的內部只需要編寫自己獨有特征和行為的機制,叫做繼承。
使用繼承可以提高代碼的復用性,可維護性以及可擴展性。
在Java語言中使用extends關鍵字來表達繼承的關系。
如:
public class Student extends Person{} - 表示Student類繼承自Person類
其中Person類通常叫做超類、父類、基類。
其中Student類通常叫做派生類、子類、孩子類。

3.2 注意事項
(1)子類可以繼承父類的成員變量和成員方法,包括私有成員變量但不能直接使用。
子類不可以繼承父類的構造方法和私有方法。
(2)無論使用何種方式構造子類對象時,都會自動調用父類的無參構造方法來初始化從
父類中繼承下來的成員,相當于在構造方法的第一行增加代碼:super();的效果。
(3)在Java語言中支持單繼承不支持多繼承,也就是每個子類只有一個父類,而每個
父類可以有多個子類。
(4)使用繼承必須滿足以下邏輯關系:子類 is a 父類,也就是不能濫用繼承。

3.3 this和super的比較
(1)基本概念
this關鍵字主要用于代表本類類型的對象;
super關鍵字主要用于代表父類類型的對象;

(2)使用方式
使用this.的方式可以訪問本類的成員變量和成員方法;
使用super.的方式可以訪問父類的成員變量和成員方法;

使用this(實參)的方式可以調用本類中的其他構造方法;
使用super(實參)的方式可以調用父類的構造方法;

static的用法。要求大家掌握的用法:
a.使用this.的方式可以區分同名的成員變量和形參變量;
b.使用super(實參)的方式可以調用父類中的構造方法;
c.使用super.的方式可以調用父類中被重寫以后的方法;

3.4 方法的重寫(Override)
(1)基本概念
當父類中繼承下來的方法不足以滿足子類的需求時,則需要在子類中重新寫一個和父類一樣的方法,去覆蓋從父類中繼承下來的方法,叫做方法的重寫。

(2)重寫的原則
a.要求方法名、參數列表和返回值類型相同,從jdk1.5開始允許返回子類類型。
b.訪問權限不能變小,可以相等或變大。
c.不能拋出更大的異常。

轉載于:https://www.cnblogs.com/sumboy/p/8604166.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/179579.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息