摘要:本文繼續講封裝。上一篇樂字節垃圾回收機制和語句這次講述繼承與權限修飾。通過繼承,子類自動擁有了基類的所有成員成員變量和成員方法。一覽無遺子承父業兒子自己使用家庭和睦占為已有。
本文繼續講Java封裝。上一篇:樂字節Java|GC垃圾回收機制、package和import語句
這次講述JavaBean、繼承與權限修飾。
封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和行為(或方法)結合為一個獨立的整體,并盡可能隱藏對象的內部實現細節。
(1)隱藏實現細節,提供公共的訪問方式
(2)好處:
A:隱藏實現細節,提供公共的訪問方式
B:提高代碼的復用性
C:提高代碼的安全性
(3)設計原則
把不想讓外界知道的實現細節給隱藏起來,提供公共的訪問方式
(4)private是封裝的一種體現。
public、protected、private、default
例1:
public class Use{ public static void main(String[] args) { Show.show("封裝"); } } //對System.out.println(str)的封裝,直接調用就好 class Show{ public static void show(String str){ System.out.println(str); } }
例2
public class Man { //對屬性的封裝,一個人的名字,年齡,妻子都是這個對象(人)的私有屬性 private String name; private int age; private Woman wife; //對該人對外界提供方法的封裝 可以設定妻子的名字,姓名,年齡也可以獲得男人的姓名和年齡 //方法封裝 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //此處少了一個getWife()方法,是因為該男人不想讓外界訪問自己的妻子 public void setWife(Woman wife){ this.wife=wife; } } class Woman{ //屬性的封裝 private String name; private int age; private Man husband; //方法封裝 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Man getHusband() { return husband; } public void setHusband(Man husband) { this.husband = husband; } }
JavaBean
本身是一個類,屬于Java的面向對象編程,是一個封裝對象實例的封裝類。
javaBean編碼規則:
(1) javaBean必須聲明為public class,這樣才能夠被外部所訪問;
(2) 一個JavaBean中至少存在一個無參構造方法
(3)類中所有的屬性都必須封裝,即:使用private聲明;
(4)為封裝的私有屬性提供公共的setter、getter方法;
二、 類的繼承與權限控制 1、繼承繼承:子承父業
繼承的本質在于抽象。類是對對象的抽象,繼承是對某一批類的抽象,從而實現對現實世界更好的建模。同時使用繼承可以提高代碼的復用性。(事實上,利用組合可以更好的實現代碼復用?。〆xtends的意思是“擴展”。子類是父類的擴展。
java中使用extends關鍵字實現類的繼承機制,語法規則:
作用: 實現代碼的復用,延續+擴展父類信息。
通過繼承,子類自動擁有了基類的所有成員(成員變量和成員方法)。
Java只支持單繼承,不允許多繼承:一個子類只能擁有一個基類,一個基類可以派生出多個子類
2、訪問控制Java權限修飾符 public protected private 置于類的成員定義前,用來限定其他對象對該類對象成員的訪問權限。
通過訪問權限的控制達到信息隱藏
理解:如電腦 利用一個外殼包裹,保護了里面的電器元件,提供了少量的按鍵與其對接使用。我要看電視,只需要按一下開關和換臺就可以了。有必要了解電視機內部的結構嗎?有必要碰碰顯像管嗎?
制造廠家為了方便我們使用電視,把復雜的內部細節全部封裝起來,只給我們暴露簡單的接口,比如:電源開關。具體怎么內部實現的,我們不需要操心。再比如你的手機,手機的鍵盤,屏幕,聽筒等,就是其對外接口。你只需要知道如何按鍵就可以使用手機,而不需要了解手機內部的電路是如何工作的。封裝機制就像手機一樣只將對外接口暴露,而不需要用戶去了解其內部實現。細心觀察,現實中很多東西都具有這樣的特點。
需要讓用戶知道的暴露出來,不需要讓用戶了解的全部隱藏起來。這就是封裝。白話:“該露的露,該藏的藏”。
概念:
我們程序設計要追求“高內聚,低耦合”。高內聚就是類的內部數據操作細節自己完成,不允許外部干涉;
低耦合:僅暴露少量的方法給外部使用。
public: 一覽無遺;
protected:子承父業 (兒子自己使用);
default :家庭和睦;
private :占為已有。
對于class的權限修飾只能用public和default。
public 類可以在任意地方訪問
default類只可以在同包被訪問
1)、屬性盡可能私有化 private
2)、訪問器: setter與getter訪問器 >private ,一般public居多
setterXxx: 存儲 與 getterXxx: 查看
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75567.html
摘要:大家好,樂字節的小樂又來了,上一篇是樂字節繼承與權限修飾,也是屬于繼承的,今天繼續繼承方法重寫和關鍵字。三關鍵字表示最終的。修飾類,表示該類不能被繼承修飾方法,表示該方法不能被重寫修飾屬性,表示常量,值一旦確定不可改變。 大家好,樂字節的小樂又來了,上一篇是:樂字節Java|JavaBean、繼承與權限修飾,也是屬于Java繼承的,今天繼續Java繼承-方法重寫、super和final...
摘要:大家好,小樂繼續接著上集樂字節反射之一反射概念與獲取反射源頭這次是之二實例化對象接口與父類修飾符和屬性一實例化對象之前我們講解過創建對象的方式有克隆反序列化,再加一種,根據對象,使用或者構造器實例化對象。 大家好,小樂繼續接著上集:樂字節Java反射之一:反射概念與獲取反射源頭Class 這次是之二:實例化對象、接口與父類、修飾符和屬性 一:實例化對象 之前我們講解過創建對象的方式,有...
摘要:在成員方法中或構造器中隱式的傳遞。作用如下在構造器中只能放在第一行屬性避免屬性和形參局部變量同名,發生就近原則實參列表構造器的首行調用其他構造器。關鍵字靜態的公共的。構造塊,先于構造器執行,每創建一個對象執行一次。 大家好,我是樂字節的小樂,從本文開始將會給大家講述Java繼承,一下是Java繼承的知識圖譜:showImg(https://segmentfault.com/img/bV...
摘要:注意當多個父接口中存在相同的默認方法時,子類中以就近原則繼承。定義靜態默認方法這是版簡易計算器接口默認方法使用定義接口并提供默認打印方法定義接口默認方法支持方法形參這是數值運算基本接口。。。 總概 JAVA8 已經發布很久,而且毫無疑問,java8是自java5(2004年發布)之后的最重要的版本。其中包括語言、編譯器、庫、工具和JVM等諸多方面的新特性。 Java8 新特性列表如下:...
摘要:經典的基礎面試題集錦經典的基礎面試題集錦,歡迎收藏和分享。類變量或者說靜態變量是通過這個關鍵字來聲明的。非靜態變量在每一個對象實例上都有單獨的一份值。對象允許程序和數據進行封裝,以減少潛在的干涉。 經典的Java基礎面試題集錦 經典的Java基礎面試題集錦,歡迎收藏和分享。 問題:如果main方法被聲明為private會怎樣? 答案:能正常編譯,但運行的時候會提示main方法不是pub...
閱讀 1409·2021-09-02 09:53
閱讀 2673·2021-07-29 13:50
閱讀 1723·2019-08-30 11:07
閱讀 1577·2019-08-30 11:00
閱讀 1458·2019-08-29 14:00
閱讀 1851·2019-08-29 12:52
閱讀 2569·2019-08-29 11:11
閱讀 3427·2019-08-26 12:23