JAVA面向對象基礎知識梳理

什么是面向對象

面向對象 Object Oriented Programming 簡稱:OOP吼蚁;

在程序中使用對象來映射現(xiàn)實中的事物,適用對象的關系來描述事物之間的聯(lián)系问欠,這種思想就是面向對象肝匆;

面向對象與面向過程的區(qū)別

面向過程就是分析解決問題所需要的步驟,然后用函數(shù)把這些步驟一一實現(xiàn)溅潜,使用的時候依次調用就可以了术唬。

面向對象則是把解決的問題按照一定規(guī)則劃分為多個獨立的對象,然后通過對象的方法來解決問題滚澜。一個應用程序會包含多個對象粗仓,通過多個對象的相互配合來實現(xiàn)應用程序的功能。當某個應用程序功能需要改變時,只需要修改個別的對象即可借浊,這樣可以使代碼更容易維護塘淑,效率更高。

例如:洗衣服蚂斤,之前小鯨魚是將衣服放到盆里面存捺,然后倒入適量洗衣粉,在加入適量水曙蒸,然后這時候小鯨魚就開始了純手工搓洗階段捌治,有了面向對象之后,小鯨魚就像是擁有了一臺洗衣機纽窟,就只需要將衣服放進洗衣桶肖油,然后倒入洗衣粉,按下開始按鈕臂港,此時森枪,小鯨魚就只需要等待它洗好就行,所以很大程度上提高了效率

面向對象的三大特性

封裝性

????????封裝性是面向對象的核心思想审孽,將對象的屬性和方法封裝起來县袱,不需要讓外界知道具體實現(xiàn)的細節(jié),這就是封裝的思想佑力。

????????封裝可以是數(shù)據(jù)的安全得到保證式散。當把過程和數(shù)據(jù)封裝起來后,對數(shù)據(jù)的訪問只能通過已定義的接口進行

繼承性

? ? ? ? 繼承主要指的是類與類之前的關系搓萧。通過繼承杂数,可以有效的對原有類的功能進行擴展。

????????繼承不僅增強了代碼的復用性瘸洛,提高了開發(fā)效率 揍移,更為程序的修改補充提供了便利

????????注意:繼承要是用extends關鍵字,并且java中只允許單繼承反肋,即一個類只能有一個父類那伐。這樣的繼承關系呈樹狀,體現(xiàn)了java的簡單性石蔗,子類只能繼承在父類中可以訪問的屬性和方法罕邀,實際上父類中私有的屬性和方法也會被子類繼承,只是子類無法訪問

多態(tài)性

? ? ? ? 多態(tài)是把子類型的對象主觀的看作其父類型的對象养距,那么父類型就可以是很多種類型诉探。

????????多態(tài)有以下特性:

? ? ? ? ????????對象的實例確定后則不可改變(客觀不可改變);

? ? ? ? ? ? ? ? 只能定義編譯時類型所定義的方法棍厌;

? ? ? ? ? ? ? ? 運行時會根據(jù)運行時類型去調用相應類型中定義的方法肾胯;

構造方法主要特點

構造方法的名稱必須與類的名稱完全相同

構造方法不返回任何數(shù)據(jù)竖席,也不需要使用void關鍵字聲明

構造方法的作用是創(chuàng)建對象并初始化成員變量

在創(chuàng)建對象時,系統(tǒng)會自動調用類的構造方法

構造方法一般用public關鍵字聲明

每個類至少有一個構造方法敬肚。如果不定義構造方法毕荐,java將提供一個默認的不帶參數(shù)且方法為空的構造方法

構造方法也可以重載

訪問修飾符的作用范圍

訪問修飾符作用范圍

私有的訪問修飾符private

? ? ? ? private修飾符對應最嚴格的訪問級別,被聲明為private的方法艳馒、變量和構造方法只能被所屬類訪問憎亚。

無訪問修飾符

? ? ? ? 不使用訪問修飾符聲明的變量和方法,可以被這個類本身或者與類在同一個包內(nèi)的其他類訪問

受保護的訪問修飾符protected

? ? ? ? protected修飾符不能修飾類和接口弄慰,方法和成員變量能夠聲明為protected第美,但是接口的成員變量個成員方法不能聲明為protected。

共有的訪問修飾符public

? ? ? ? 被聲明為public的類陆爽、方法斋日、構造方法和接口能夠被任何其他類訪問。

非訪問修飾符

1.static修飾符

? ? ? ? static修飾符用來修飾類和成員變量和成員方法墓陈,也可以形成靜態(tài)代碼塊。static修飾的成員變量和成員方法一般稱為靜態(tài)變量和靜態(tài)方法第献,可以直接通過類名訪問它們

2.final修飾符

????????final可以修飾類贡必、方法和變量,意義不同庸毫,但是本質相同仔拟,都是表示不可改變;

? ? ? ? 使用final方法的原因有兩個:

? ? ? ? ? ? ? ? 一是把方法鎖定飒赃,防止任何繼承類修改它的意義和實現(xiàn)利花;

? ? ? ? ? ? ? ? 二是高效(編譯器在遇到調用final方法時,會轉入內(nèi)嵌機制载佳,大大提高執(zhí)行效率)炒事;

3.abstract修飾符

????????abstract用來修飾類,這個類成為抽象類蔫慧。抽象類不能用來實例化對象挠乳,聲明抽象類的唯一目的是為了將來對該類進行擴充。

????????抽象類可以包含抽象方法和非抽象方法姑躲。

????????抽象方法不能被聲明陳final和static睡扬。

4.synchronized修飾符

? ? ? ? synchronized聲明的方法同一時間只能被一個線程訪問。

? ? ? ? synchronized的作用范圍有如下兩種:

? ? ? ? ? ? 1)在某個對象內(nèi)黍析,synchronized修飾的方法可以防止多個線程同時訪問卖怜。

? ? ? ? ? ? ?2)在某個類中,用synchronized修飾靜態(tài)方法可以防止多個線程同時訪問這個靜態(tài)方法阐枣。

5.transient修飾符

? ? ? ? 序列化對象包含被transient修飾的成員變量時马靠,JVM跳過該特定的變量奄抽。該修飾符包含在定義變量的語句中,用來預處理類和變量的數(shù)據(jù)類型虑粥。

6.volatile修飾符

? ? ? ? java語言是支持多線程的如孝,為了解決線程并發(fā)的問題,在語言內(nèi)部引入了同步塊和volatile關鍵字機制娩贷。volatile修飾的成員變量在每次被線程訪問時都強制從共享內(nèi)存中重新讀取該成員變量的值第晰。而且,當成員變量發(fā)生變化時彬祖,會強制線程將變化值會寫到共享內(nèi)存茁瘦。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值储笑。(一個volatile對象引用可能是null)


接口與抽象類的不同點

1.接口支持多繼承甜熔,抽象類不能實現(xiàn)多繼承

2.一個類只能繼承一個抽象類,但是可以實現(xiàn)多個接口

3.接口中的成員變量只能是public static final類型的突倍,抽象類中的成員變量可以是各種類型的

4.接口只能定義抽象方法腔稀;抽象類既可以定義抽象方法,也可以定義實現(xiàn)的方法

5.接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法(static修飾的方法)羽历,抽象類可以有靜態(tài)代碼塊和靜態(tài)方法


接口與抽象類的相同點

1.都可以被繼承

2.都不能被直接實例化

3.都可以包含抽象方法

4.派生類必須實現(xiàn)未實現(xiàn)的方法


后續(xù)持續(xù)更新...


我是小鯨魚焊虏,一條努力向深海奔跑的小鯨魚

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秕磷,隨后出現(xiàn)的幾起案子诵闭,更是在濱河造成了極大的恐慌,老刑警劉巖澎嚣,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疏尿,死亡現(xiàn)場離奇詭異,居然都是意外死亡易桃,警方通過查閱死者的電腦和手機褥琐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颈抚,“玉大人踩衩,你說我怎么就攤上這事》泛海” “怎么了驱富?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匹舞。 經(jīng)常有香客問我褐鸥,道長,這世上最難降的妖魔是什么赐稽? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任叫榕,我火速辦了婚禮浑侥,結果婚禮上,老公的妹妹穿的比我還像新娘晰绎。我一直安慰自己寓落,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布荞下。 她就那樣靜靜地躺著伶选,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尖昏。 梳的紋絲不亂的頭發(fā)上仰税,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音抽诉,去河邊找鬼陨簇。 笑死,一個胖子當著我的面吹牛迹淌,可吹牛的內(nèi)容都是我干的河绽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唉窃,長吁一口氣:“原來是場噩夢啊……” “哼葵姥!你這毒婦竟也來了?” 一聲冷哼從身側響起句携,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤喉悴,失蹤者是張志新(化名)和其女友劉穎烈菌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚪拦,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡牍疏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年蠢笋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳞陨。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡昨寞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厦滤,到底是詐尸還是另有隱情援岩,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布掏导,位于F島的核電站享怀,受9級特大地震影響,放射性物質發(fā)生泄漏趟咆。R本人自食惡果不足惜添瓷,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一梅屉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鳞贷,春花似錦坯汤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妈橄,卻和暖如春庶近,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眷蚓。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工鼻种, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沙热。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓叉钥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親篙贸。 傳聞我的和親對象是個殘疾皇子投队,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354