面向過程編程思想
面向過程的抽象是將實(shí)現(xiàn)一個(gè)功能的一組命令組合成為一個(gè)函數(shù),這個(gè)函數(shù)就能實(shí)
現(xiàn)這一個(gè)功能,是對(duì)功能實(shí)現(xiàn)的一種抽象,有了函數(shù),我們就沒有必要重復(fù)寫很多
的代碼(特殊地譬如遞歸,可通過循環(huán)替代),僅僅一個(gè)代碼集合名稱以及參數(shù)就能
調(diào)用抽象的命令集合。
面向?qū)ο缶幊贪?/h4>
面向?qū)ο蟮姆治觯∣OA,Object Oriented Analysis)
面向?qū)ο蟮脑O(shè)計(jì)(OOD,Object Oriented Design)
面向?qū)ο蟮木幊虒?shí)現(xiàn)(OOP,Object Oriented Programming)
面向?qū)ο缶幊趟枷雽?shí)際上就是一種運(yùn)用對(duì)象、類、繼承、封裝、聚合、關(guān)
聯(lián)、消息、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。
實(shí)現(xiàn)

分析系統(tǒng)中涉及的事務(wù),根據(jù)“對(duì)象”抽象出“類”;
找出對(duì)象共有的特點(diǎn),并且在類中定義為屬性;
找出對(duì)象共有的行為,并且定義為類的方法。
面向?qū)ο蟾拍?/h1>
-抽象(動(dòng)詞)
-對(duì)象
-類:類是一組具有相同屬性和行為的對(duì)象的抽象,類的作用是用來創(chuàng)建對(duì)象,對(duì)
象是類的一個(gè)實(shí)例
-類和對(duì)象的關(guān)系
抽象和具體的關(guān)系。
每一個(gè)類在某一時(shí)刻都有零個(gè)或更多的實(shí)例, 類是生成對(duì)象的模板
一個(gè)類定義了使用哪些數(shù)據(jù)來描述屬性,每一個(gè)對(duì)象都有相應(yīng)的屬性值數(shù)據(jù)
,一個(gè)類通過一系列方法來定義行為,這些方法能在每個(gè)對(duì)象中被激活
類的定義
把相似的對(duì)象劃歸成一個(gè)類。
在軟件設(shè)計(jì)中,類,就是一個(gè)模板,它定義了通用于一個(gè)特定種
類的所有對(duì)象的屬性(變量)和行為(方法)。
格式:

編碼規(guī)范:
類名單詞首字母大寫
屬性和方法第一個(gè)單詞小寫,其他單詞首字母大寫
屬性和局部變量對(duì)比
局部變量
方法體中聲明的變量、方法中的參數(shù)或代碼塊中聲明的變量,都是局部
變量

屬性可以和局部變量同名,使用關(guān)鍵字this進(jìn)行區(qū)分


認(rèn)識(shí)對(duì)象
類和對(duì)象的關(guān)系
類是創(chuàng)建對(duì)象的模板,對(duì)象是類的實(shí)例。
對(duì)象的創(chuàng)建
什么是對(duì)象
類(class)是對(duì)某一類事物的描述
對(duì)象(object)是實(shí)際存在的某類事物的個(gè)體,也稱實(shí)例(instance)
創(chuàng)建語法語句:
Employee(類名) zhang(對(duì)象名)=new Employee(類名)
對(duì)象的使用
在其他類中,使用對(duì)象名點(diǎn)運(yùn)算符調(diào)用屬性和方法
-引用類的屬性:對(duì)象名。屬性
-引用類的方法:對(duì)象名。方法名(實(shí)參)
對(duì)象的創(chuàng)建
1.編寫一個(gè)類
2.在主函數(shù)中創(chuàng)建對(duì)象、
3.運(yùn)行有主函數(shù)的類
只有主函數(shù)的類才能運(yùn)行
無論有多少個(gè)類,只要主函數(shù)中創(chuàng)建對(duì)象,才會(huì)占用內(nèi)存。
創(chuàng)建多個(gè)對(duì)象
創(chuàng)建匿名對(duì)象
創(chuàng)建完對(duì)象,在調(diào)用該對(duì)象的屬性或方法時(shí),也可以不定義對(duì)象的句柄
,而直接調(diào)用這個(gè)對(duì)象的方法。這樣的對(duì)象叫匿名對(duì)象。
如果只使用該對(duì)象進(jìn)行一次方法或?qū)傩哉{(diào)用,可以創(chuàng)建匿名對(duì)象。
構(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)造方法作用
構(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ù),稱:默認(rèn)的空構(gòu)造器。
構(gòu)造方法重載
構(gòu)造方法可以像普通方法一樣發(fā)生重載,通常一個(gè)類中不止一個(gè)構(gòu)造方法,而是有多個(gè)不同參數(shù)的構(gòu)造器,用戶可以根據(jù)需要選擇不同的構(gòu)造器創(chuàng)建對(duì)象。
-一般可以使用構(gòu)造器來完成對(duì)成員變量的初始化。

有帶參的構(gòu)造器,那么不帶參的空構(gòu)造器不會(huì)自動(dòng)產(chǎn)生。為了防止在某
些情況下還想使用這樣的無參數(shù)默認(rèn)構(gòu)造器,因此最好還是養(yǎng)成寫出這
個(gè)無參數(shù)的構(gòu)造器來,以備后用。

構(gòu)造方法的調(diào)用
在其他類只能在創(chuàng)建對(duì)象時(shí)調(diào)用一次構(gòu)造方法。
普通方法可以在創(chuàng)建對(duì)象后,使用點(diǎn)運(yùn)算符調(diào)用多次。

多次調(diào)用構(gòu)造器,一個(gè)類可以實(shí)例化多個(gè)對(duì)象。

java包的概念
在Java中,包主要有以下用途 :
包允許將類組合成較小的單元
有助于避免命名沖突
包允許在更廣的范圍內(nèi)保護(hù)類、數(shù)據(jù)和方法
語法: package 包名:
Java類庫中常用的包
java.lang: java默認(rèn)包,任何程序中,該包都被自動(dòng)導(dǎo)入。
java.io:輸入/輸出操作有用的類的組成。
訪問同包中的類
位于同一包中的類可以直接訪問并使用
訪問不同包中的類
使用import關(guān)鍵字引入其他包中的類
必須在package聲明后面,類聲明前
import語句可以出現(xiàn)多次。

package和import說明
package說明:
package像是我們的姓,而class名稱就像是我們的名字
package和package的附屬關(guān)系用”.”來連接,這就像是復(fù)姓。
import說明:
import就是在java文件開頭的地方,先說明會(huì)用到哪些類。
接著就能在代碼中只用類名指定某個(gè)類,也就是只稱呼名字,不稱呼她的姓。

import使用通配符
import可以使用星號(hào)(*)通配符
代碼封裝
封裝關(guān)鍵字:
-private(私有):只能被該類的成員訪問,private權(quán)限最小,限制類外訪問。
-default(默認(rèn)):不使用權(quán)限修飾符時(shí)(即default)的成員在類內(nèi)以及
在同一個(gè)包中的其他類可以訪問。
public(公有):公有的,最高的訪問級(jí)別,public成員可以在所有其
他類中訪問

封裝的常規(guī)屬性
-將類中的屬性用private關(guān)鍵字進(jìn)行隱藏
-通過規(guī)定方法訪問屬性,一般通過set開頭的公有方法對(duì)屬性賦值,用get開頭的共有方法得到屬性的值。
-在方法中加入控制語句,對(duì)不合法數(shù)據(jù)進(jìn)行檢查。
靜態(tài):static關(guān)鍵字
static關(guān)鍵字可以修飾的元素
-屬性
所有對(duì)象共享,稱為靜態(tài)變量或類變量
不用static修飾的屬性稱為實(shí)例變量
注意:只能修飾屬性,不能修飾局部變量。
-方法
不需要實(shí)例化,可以直接訪問,稱靜態(tài)方法或類方法。
-代碼塊
靜態(tài)屬性
靜態(tài)變量和非靜態(tài)變量的區(qū)別是:靜態(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)語句塊
一個(gè)類中由static關(guān)鍵字修飾的,不包含在任何方法體中的代碼塊
當(dāng)類被載入時(shí),靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次
靜態(tài)塊經(jīng)常用來進(jìn)行類屬性的初始化
單例模式
單例模式:保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。
單例模式要點(diǎn):
-某個(gè)類只能有一個(gè)實(shí)例
-它必須自行創(chuàng)建這個(gè)實(shí)例
-必須自行向整個(gè)系統(tǒng)提供這個(gè)實(shí)例
