更新時(shí)間:2020-07-24 15:22:47 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3328次
面向?qū)ο蟪绦蛟O(shè)計(jì)五個(gè)特征:
在Java編程思想中提到了面向?qū)ο蟪绦蛟O(shè)計(jì)的五個(gè)特征:
萬物皆為對(duì)象。也就是說世界上所有的事物都能通過抽象變成一個(gè)可以實(shí)現(xiàn)的對(duì)象。比如動(dòng)物、建筑物、服務(wù)。
程序是對(duì)象的集合,他們通過發(fā)送消息來告知彼此所有做的。程序是把要解決的問題抽象為若干的對(duì)象,這些對(duì)象之間通過消息來通知彼此做什么和傳遞數(shù)據(jù)。比如:動(dòng)物吃食物,這個(gè)程序包含了動(dòng)物、食物兩種對(duì)象,通過吃這一動(dòng)作來告知?jiǎng)游锍允澄铩?/p>
每個(gè)對(duì)象都有自己由其他對(duì)象構(gòu)成的存儲(chǔ)。意思是對(duì)象之間可以是包含的關(guān)系,一個(gè)對(duì)象中可以含有另外一個(gè)對(duì)象,這樣就構(gòu)成了一個(gè)新的對(duì)象。比如:發(fā)動(dòng)機(jī),汽車,汽車這一對(duì)象中包含發(fā)動(dòng)機(jī)。
每個(gè)對(duì)象都擁有其類型。每個(gè)對(duì)象都是某個(gè)類的一個(gè)實(shí)例,這個(gè)類就是抽象出來的一類事物,這個(gè)類與其他類之間的重要區(qū)別就是行為,它能接受什么樣的消息。比如:動(dòng)物和食物,動(dòng)物有吃的行為,移動(dòng)的行為,而食物是沒有的。
某一特定類型的所有對(duì)象都可以接受同樣的消息。這是判斷某一對(duì)象是不是某個(gè)類型的標(biāo)準(zhǔn)。比如你定義了動(dòng)物的一些行為,比如移動(dòng),那么所有的動(dòng)物都要相應(yīng)移動(dòng)這一消息,無論你是跑著移動(dòng)、飛著移動(dòng),還是游著移動(dòng)。
上面是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征,下面介紹面向?qū)ο笾杏玫降囊恍╆P(guān)鍵詞。
類:
類描述了具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象集合,也是一個(gè)數(shù)據(jù)類型。比如說動(dòng)物,它有重量、大小的特征(數(shù)據(jù)元素),也有移動(dòng)、吃的行為(功能)。
對(duì)象:
對(duì)象是具有狀態(tài)、行為和標(biāo)識(shí)的是上面類的一個(gè)實(shí)例。每一個(gè)對(duì)象都有內(nèi)部數(shù)據(jù)(它描述該對(duì)象的狀態(tài))和方法(它產(chǎn)生行為),并且每一個(gè)對(duì)象都可以與其他對(duì)象區(qū)分開來,就是一個(gè)對(duì)象在內(nèi)存中都有一個(gè)唯一的地址。在Java中對(duì)象都必須通過new來產(chǎn)生。
繼承:
把某些具有相同屬性和行為的事物抽象起來集中到一個(gè)類中,一個(gè)新類可以從這個(gè)類中派生,新類具有父類的所有的行為和特征,這個(gè)過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類),在Java中是通過ChildCalss extends FartherClass這種方式實(shí)現(xiàn)的。
抽象:
抽象在編程中就是把你要解決的問題分解為一個(gè)一個(gè)的小問題,直到你不能再分解為止,然后把你分解的這些小問題用一個(gè)一個(gè)的對(duì)象描述對(duì)應(yīng)起來,將問題集合分解為對(duì)象集合。實(shí)際中就是不斷的問需要哪些服務(wù),需要哪些對(duì)象才能履行它們的服務(wù)。良好的面向?qū)ο蟮牡脑O(shè)計(jì)中,每個(gè)對(duì)象都可以很好的完成一項(xiàng)任務(wù),但是它并不試圖做更多的事。
多態(tài):
多態(tài)指的是在繼承關(guān)系中子類繼承父類的行為,這種行為在子類具體實(shí)現(xiàn)時(shí)可以是不一樣的。比如動(dòng)物這一父類中有move()方法,在鳥類子類中和魚類子類中move的實(shí)現(xiàn)是不一樣的。在Java中多態(tài)是通過重寫(override:把父類的方法重新實(shí)現(xiàn))和重載(overload:通過方法參數(shù)的不同在子類中來重新創(chuàng)建名字相同的方法)來實(shí)現(xiàn)的。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Javase面向?qū)ο蠼坛?rdquo;的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743