一、什么是對象和面向?qū)ο蟮木幊獭?/strong>
對象就是存在的具體實體,具有明確定義的狀態(tài)和行為,是面向?qū)ο缶幊痰暮诵?,用來描述現(xiàn)實世界中的實體,為計算機(jī)應(yīng)用程序提供實體基礎(chǔ),也是完成特定任務(wù)一個封裝。
那到底什么是對象,能舉個例子嗎?其實在我們的日常生活中,許多東西都是可以抽象成為對象,比如子杉同志有一輛汽車,這輛車就是對象了,這個對象(汽車)所具有的顏色,牌子,有產(chǎn)地等資料,也可以被我們稱為是這個對象(汽車)的屬性,這個對象(汽車)也能開動,同時也必須經(jīng)常維修等等。而這些操作,我們稱為是這個對象的行為,這就是對象了。
在面向?qū)ο缶幊讨?簡稱:OOP),現(xiàn)實世界的所有事物全都被視為對象。OOP的目標(biāo)是在計算機(jī)程序中,模擬現(xiàn)實世界中的概念,我們可以借助對象的描述就能夠在計算機(jī)程序中用類似的實體模擬現(xiàn)實世界中的實體。同時OOP也是設(shè)計和實現(xiàn)軟件系統(tǒng)的方法。
二、對象和類
類是具有相同屬性和行為的一組對象的集合。類是用于組合各個對象所共有操作和屬性的一種機(jī)制。
對象和類有什么關(guān)系呢?我們可以通過一個簡單的例子來回答一下。
譬如現(xiàn)在有一個收銀員叫子杉同志的。那么我們可以把他抽象成為一個對象——收銀員對象。
這個對象有以下的一些資料:
姓名:子杉同志
職銜:收銀員
年齡:25
體重:80千克
操作:收款和打印帳單
在現(xiàn)實社會中一個超市里面肯定不止一個員工,可能清潔工張三、李四等等。這些都是這個超市員工對象,或者稱之為實例,而且所有的員工都有姓名、職銜、年齡、體重等屬性;收款和打印帳單或者打掃衛(wèi)生等行為。現(xiàn)在我們繼續(xù)討論這個子杉同志,他是一個收銀員,讓我們通過對收銀員對象進(jìn)行抽象,就可以得到一個收銀員類(class),這個類擁有姓名、職銜、年齡、體重等屬性;收款和打印帳單等行為。
綜上所述類是對象的原型,所有屬于同一個類的對象都具有相同的屬性和行為,我們抽象了類之后,我們又可以用類定義實體。類是概念模型,對象是真實的模型。
三、屬性和方法
類是java的基本單位,類一般包括屬性和方法。
屬性:事物的特性在類中表示為變量,每個對象的每個屬性都擁有其特有的值,屬性名稱由類的所有實例共享,在類中表示對象或?qū)嶓w擁有的特性時稱為屬性,比如我們上面所說的收銀員類就是有有姓名、職銜、年齡、體重等屬性,屬性一般使用名詞描述。
方法:操作的實際實現(xiàn)方法指定操作對象數(shù)據(jù)的方式如何執(zhí)行所請求的操作的規(guī)范在得到操作請求時指定如何做的算法對象執(zhí)行的操作稱為方法。比如我們上面所說的收銀員類就是有收款和打印帳單等方法,屬性一般使用動詞描述。
四、面向?qū)ο笏枷?/strong>
因為面向?qū)ο笏枷牒唵胃爬ㄆ饋砭褪侨齻€內(nèi)容,即:封裝(Encapsulation)、繼承(Inheritance)和多態(tài)(Polymorphism)。
封裝:就是把某些內(nèi)容封起來,不讓別人知道。有些對象自己的屬性內(nèi)部實現(xiàn)細(xì)節(jié)是不想讓其他的對象知曉的,那么我們就可以把它封裝起來。這就是封裝的基本概念。
繼承:顧名思義,繼承就是兒子對父親的繼承,在類也可以有子類和父類的。子類對父類的繼承,但是繼承也不是全部繼承的,若子類與父類在同一包中。子類繼承了父類中所有不是private的成員方法(除構(gòu)造方法)及不是private的成員變量繼承,有關(guān)繼承的具體我們在后面的會再介紹。繼承的目標(biāo)主要實現(xiàn)重用代碼,節(jié)省開發(fā)時間。
多態(tài):同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在運(yùn)行時,可以通過指向父類的指針,來調(diào)用實現(xiàn)子類中的方法。在java中多態(tài)一般又分為方法的重寫和方法的重載。
編譯時的多態(tài)性:編譯時的多態(tài)性是通過重載來實現(xiàn)的。對于非虛的成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型等信息決定實現(xiàn)何種操作。
運(yùn)行時的多態(tài)性:運(yùn)行時的多態(tài)性就是指直到系統(tǒng)運(yùn)行時,才根據(jù)實際情況決定實現(xiàn)何種操作。編譯時的多態(tài)性為我們提供了運(yùn)行速度快的特點,而運(yùn)行時的多態(tài)性則帶來了高度靈活和抽象的特點。
以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí):面向?qū)ο蟮纳疃确治?rdquo;的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Java全套自學(xué)資料
Java自學(xué)視頻教程(免費(fèi)學(xué)習(xí)):http://www.bjpowernode.com/video.html
Java技術(shù)教程:http://www.bjpowernode.com/tutorial/
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
Java學(xué)習(xí)路線清單,快速進(jìn)階Java
Java編程初學(xué)者要如何進(jìn)階
Java基礎(chǔ)學(xué)習(xí)