面向?qū)ο蠡A(chǔ)

面向?qū)ο缶幊贪ǎ?/p>

  • 面向?qū)ο蟮姆治觯∣OA)
  • 面向?qū)ο蟮脑O(shè)計(jì)(OOD)
  • 面向?qū)ο蟮木幊虒?shí)現(xiàn)(OOP)

面向?qū)ο笏枷耄?br> OOA:把事務(wù)分解成對(duì)象洞焙,并賦予相應(yīng)的屬性與行為视译,通過多個(gè)對(duì)象的相互協(xié)調(diào)解決問題
OOD:對(duì)象間無先后順序椅寺,共同作用才構(gòu)成整個(gè)系統(tǒng)。只要設(shè)計(jì)出幾個(gè)對(duì)象予弧,讓他們交互蟆盐,就可以完成系統(tǒng)功能
面向?qū)ο缶幊趟枷雽?shí)際就是一種運(yùn)用對(duì)象,類室谚,繼承毡鉴,封裝,聚合秒赤,關(guān)聯(lián)猪瞬,消息,多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法入篮。

面向?qū)ο蟾拍?/h4>

抽象(abstract):根據(jù)具體問題概括共同的方面,屬性與關(guān)系等潮售,舍棄非本質(zhì)特征。
對(duì)象:是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體酥诽。
類:是一組具有相同屬性和行為的對(duì)象的抽象,類的作用是用來創(chuàng)建對(duì)象肮帐,對(duì)象是類的一個(gè)實(shí)例咖驮。
類和對(duì)象的關(guān)系:
抽象和具體的關(guān)系
類是創(chuàng)建對(duì)象的模板,對(duì)象是類的實(shí)例训枢。
類是一個(gè)靜態(tài)的概念,類本身不攜帶任何數(shù)據(jù)。當(dāng)沒有為類創(chuàng)建任何對(duì)象時(shí)袋坑,類本身不存在于內(nèi)存空間中仗处。
對(duì)象是一個(gè)動(dòng)態(tài)的概念。每一個(gè)對(duì)象都存在著有別于其它對(duì)象的屬于自己的獨(dú)特的屬性和行為枣宫。對(duì)象的屬性可以隨著它自己的行為而發(fā)生改變婆誓。

類的定義

語法格式:
[類修飾符] class 類名{
類的成員
}
類的成員:

  • 成員變量(屬性)
  • 成員方法(方法)
  • 嵌套類
  • 代碼塊

編寫規(guī)范:

  • 類名首字母大寫
  • 屬性和方法第一個(gè)單詞小寫也颤,其他單詞首字母大寫

屬性和方法

屬性有默認(rèn)值,因此可以不用賦值就可以使用翅娶。


方法中可以直接使用屬性名好唯,對(duì)屬性進(jìn)行操作燥翅。

屬性和局部變量對(duì)比

局部變量

  • 方法體中聲明的變量,方法中的參數(shù)或代碼塊中聲明的變量森书,都是局部變量
  • 屬性可以和局部變量同名,使用this關(guān)鍵字進(jìn)行區(qū)分
  • 屬性在整個(gè)類中生效杨名,無論在什么地方聲明
  • 局部變量必須先聲明猖毫,然后才能使用

對(duì)象的創(chuàng)建

什么是對(duì)象

  • 類 :對(duì)某一類事物的描述
  • 對(duì)象:是實(shí)際存在的某類事務(wù)的個(gè)體

創(chuàng)建語法:
類名 對(duì)象名=new 類名();

對(duì)象的使用

點(diǎn)運(yùn)算符

  • 引用類的屬性:對(duì)象名.屬性
  • 引用類的方法:對(duì)象名.方法名(實(shí)參)

在類內(nèi)的方法中,訪問本類的屬性和方法可以直接訪問

創(chuàng)建對(duì)象原理

實(shí)例化對(duì)象的同時(shí)操作了棧內(nèi)存和堆內(nèi)存

  • 在棧內(nèi)保存對(duì)象的首地址鄙麦,即引用
  • 在堆內(nèi)存保存了對(duì)象的
    屬性
  • 對(duì)對(duì)象的所有操作只能通過引用完成,一旦引用出棧釋放沒有任何引用指向該對(duì)象胯府,對(duì)象就變成垃圾

棧stack:棧的存取速度比堆快,效率高炎咖。在棧內(nèi)保存基本數(shù)據(jù)類型的局部變量和對(duì)象的引用值寒波。
堆heap:堆可以保存那些對(duì)空間要求較大的變量。如對(duì)象的屬性和數(shù)組的元素俄烁。在堆內(nèi)存中開辟空間,只能通過內(nèi)存分配操作符號(hào)new页屠,凡是出現(xiàn)new的地方必定分配了一個(gè)堆內(nèi)存。

創(chuàng)建匿名對(duì)象

  • 創(chuàng)建完對(duì)象辰企,直接調(diào)用這個(gè)對(duì)象的方法或?qū)傩裕欢x句柄竹观,這個(gè)對(duì)象叫匿名對(duì)象。
  • 如果只使用該對(duì)象進(jìn)行一次方法或?qū)傩哉{(diào)用臭增,可以創(chuàng)建匿名對(duì)象。

垃圾回收機(jī)制

垃圾回收(Garbage Collection速址,GC),JDK7以后使用GI(Garbage First)機(jī)制:

  • 當(dāng)沒有對(duì)象引用指向原先分配給某個(gè)對(duì)象的內(nèi)存時(shí)芍锚,該內(nèi)存便成為垃圾。JVM的一個(gè)系統(tǒng)級(jí)線程會(huì)自動(dòng)釋放該內(nèi)存塊默刚。
  • 垃圾回收機(jī)制作用于堆內(nèi)存逃魄,與棧內(nèi)存無關(guān)荤西。
  • 垃圾回收機(jī)制是JVM內(nèi)部運(yùn)行的一個(gè)優(yōu)先級(jí)比較低的后臺(tái)線程伍俘,自動(dòng)進(jìn)行垃圾回收邪锌。它是保證程序健壯性的主要手段癌瘾,不用程序員參與,避免了由于程序員忘記回收內(nèi)存而引起的內(nèi)存泄露妇萄,同時(shí)也避免了回收內(nèi)存帶來的代碼繁瑣咬荷。

對(duì)象會(huì)被回收的情況:
1.對(duì)象的引用賦值為null:Person p=new Person(); p=null;
2.使用的匿名對(duì)象:new Person().sayhello();
3.超出生命周期冠句,如
for(int i=1;i<100;i++){
Person p=new Person();
}
每結(jié)束一次循環(huán)幸乒,變量p超出生命周期懦底,對(duì)象變?yōu)槔?/p>

構(gòu)造方法

構(gòu)造方法(構(gòu)造器罕扎,Constructor)

  • 構(gòu)造方法也是方法,但是它是特殊的方法而已
  • 所有的對(duì)象都是通過構(gòu)造器來創(chuàng)建

創(chuàng)建對(duì)象
類名 對(duì)象名=new 構(gòu)造方法()壳影;

構(gòu)造器(構(gòu)造方法/構(gòu)造器弥臼,Constructor)特點(diǎn):

  • 構(gòu)造方法名必須與類有相同的名稱
  • 不含返回值類型,也沒有void
  • 不能在方法中使用return語句返回一個(gè)值
構(gòu)造方法作用:

用來完成對(duì)象的創(chuàng)建掺栅,即完成對(duì)象的實(shí)例化

  • 在Java中烙肺,每個(gè)類都至少有一個(gè)構(gòu)造器
  • 一個(gè)類可以不寫出構(gòu)造方法氧卧,編譯器會(huì)自動(dòng)的給這個(gè)類增加一個(gè)構(gòu)造器,該構(gòu)造器沒有任何參數(shù)搏明,稱為“空構(gòu)造器”闪檬。
  • 如果編譯者為該類定義了構(gòu)造器,系統(tǒng)就不再提供默認(rèn)的構(gòu)造器粗悯。(如果不寫空參構(gòu)造器,還用空參方式創(chuàng)建對(duì)象样傍,會(huì)出錯(cuò))
構(gòu)造方法的重載

可以跟普通方法一樣重載。
構(gòu)造器可以有多個(gè)茎刚,用戶根據(jù)需要選擇不同參數(shù)的構(gòu)造器創(chuàng)建對(duì)象炕檩。
帶參數(shù)的構(gòu)造器,常用來對(duì)成員變量進(jìn)行初始化笛质。

構(gòu)造方法的調(diào)用

  • 只能在本類的構(gòu)造方法中,調(diào)用其他重載的構(gòu)造方法
  • 使用this關(guān)鍵字跷究,并且代碼只能在構(gòu)造方法的第一行
  • 根據(jù)實(shí)參確定調(diào)用的構(gòu)造方法

封裝

隱藏對(duì)象的屬性和方法的實(shí)現(xiàn)細(xì)節(jié)敲霍,只公開對(duì)外接口
好處:

  • 隱藏實(shí)現(xiàn)的細(xì)節(jié)
  • 方便修改的實(shí)現(xiàn)
  • 只能通過規(guī)定方法訪問

封裝關(guān)鍵字


靜態(tài):static關(guān)鍵字

可以修飾的元素:

  • 屬性:只能修飾屬性,不能修飾局部變量
    所有對(duì)象共享柴我,稱為靜態(tài)變量或類變量
  • 方法:不需要實(shí)例化扩然,可以直接訪問艘儒,稱為靜態(tài)方法或類方法
  • 代碼塊:類中有static修飾的,不包含在任何方體中的代碼塊觉增,稱為靜態(tài)代碼塊
靜態(tài)屬性

類被載入時(shí)創(chuàng)建翻斟,只要類存在,static變量就存在

靜態(tài)變量與非靜態(tài)變量的關(guān)系
靜態(tài)變量被所有的對(duì)象共享访惜,在內(nèi)存中只有一個(gè)副本,它當(dāng)且僅當(dāng)類初次加載時(shí)會(huì)被初始化植捎。而非靜態(tài)變量是對(duì)象所擁有的阳柔,在創(chuàng)建對(duì)象的時(shí)候被初始化,存在多個(gè)副本舌剂,各個(gè)對(duì)象擁有的副本互不影響

訪問方式:

  • 直接訪問:類名.屬性;
    實(shí)例化后訪問:對(duì)象名.屬性
靜態(tài)方法

不需實(shí)例化荐绝,可以直接訪問,訪問方式

  • 直接訪問:類名.方法名()
  • 實(shí)例化后訪問:對(duì)象名.方法名()
    注:靜態(tài)方法不能修飾構(gòu)造器低滩,不能使用this關(guān)鍵字岩喷,只能訪問靜態(tài)屬性和方法,而不能訪問非靜態(tài)屬性和方法
靜態(tài)語句塊

一個(gè)類中由static關(guān)鍵字修飾的纱意,不包含在任何方法體中的代碼塊

  • 當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行迄委,且只被執(zhí)行一次
  • 靜態(tài)塊常用來類屬性的初始化
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末类少,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子硫狞,更是在濱河造成了極大的恐慌赞警,老刑警劉巖虏两,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件定罢,死亡現(xiàn)場離奇詭異,居然都是意外死亡祖凫,警方通過查閱死者的電腦和手機(jī)酬凳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稠屠,“玉大人翎苫,你說我怎么就攤上這事权埠〖宓” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵满俗,是天一觀的道長作岖。 經(jīng)常有香客問我,道長鳍咱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任蓄坏,我火速辦了婚禮丑念,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘脯倚。我一直安慰自己嵌屎,他們只是感情好恍涂,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尼夺,像睡著了一般炒瘸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顷扩,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天隘截,我揣著相機(jī)與錄音扎阶,去河邊找鬼技俐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雕擂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谤逼,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼仇穗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枝冀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤果漾,失蹤者是張志新(化名)和其女友劉穎谷誓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捍歪,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年恩商,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕届。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡末患,死狀恐怖锤窑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渊啰,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布隧膏,位于F島的核電站嚷那,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏魏宽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一派桩、第九天 我趴在偏房一處隱蔽的房頂上張望蚌斩。 院中可真熱鬧铆惑,春花似錦送膳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闻书。三九已至,卻和暖如春砰盐,著一層夾襖步出監(jiān)牢的瞬間坑律,已是汗流浹背岩梳。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國打工冀值, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人列疗。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓浪蹂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坤次。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容