面向?qū)ο蟾攀?類與對(duì)象
面向?qū)ο螅?/h2>
首先理解习霹,萬物皆對(duì)象,我們看的見摸得著的東西都是對(duì)象似袁。那么對(duì)象都會(huì)有特征(屬性、即數(shù)據(jù))和能干什么(方法)。對(duì)象自身是內(nèi)聚的昙衅,它只需要關(guān)注自身的數(shù)據(jù)扬霜,完成好自己的操作的,對(duì)外界呈現(xiàn)出自己的狀態(tài)和行為即可而涉;
高內(nèi)聚著瓶,低耦合
寫代碼時(shí),力求高內(nèi)聚啼县,低耦合(在類的封裝中會(huì)具體介紹)
高內(nèi)聚:類的內(nèi)部數(shù)據(jù)操作細(xì)節(jié)自己完成材原,不允許外部干涉
低耦合:僅暴露少量的方法給外部使用
面向過程:
面向過程編程,解決(實(shí)現(xiàn))一個(gè)問題(功能)季眷,需要步驟化的進(jìn)行函數(shù)調(diào)用余蟹。突出的是解決問題的過程和細(xì)節(jié)。
到底該如何理解面向?qū)ο竽兀?/b>
假如交給你一項(xiàng)任務(wù)——“把一頭大象裝進(jìn)冰箱里”瘟裸。你該怎么去做呢客叉?
面向過程的解決思路是:
1. 找一個(gè)冰箱門
2. 打開冰箱門
3. 把大象引過來、騙進(jìn)去
4. 關(guān)上冰箱門
面向?qū)ο?/b>的解決思路是:
去找個(gè)有能力做這件事的人话告,把這件事托付給他去做兼搏,自己只看結(jié)果就行。具體怎么實(shí)現(xiàn)的沙郭,不必去管它佛呻。
對(duì)象:
找的這個(gè)人,在java中就是一個(gè)對(duì)象病线,我只需要關(guān)注這個(gè)人有沒有“把大象裝進(jìn)冰箱”這個(gè)技術(shù)和這個(gè)能力吓著,而不需要關(guān)注這個(gè)人怎么把大象裝進(jìn)去的,要完成這個(gè)“大象裝進(jìn)冰箱”事情送挑,這個(gè)人是需要回答我:“能”绑莺,還是“不能”。
類:“人以類聚惕耕,物以群分”
可以理解為對(duì)一群實(shí)體的共同特點(diǎn)的抽象概括纺裁。比如學(xué)生就是一個(gè)實(shí)際群體的概括,他們有共同的特征司澎,都有名字欺缘、都有性別、年齡挤安、學(xué)號(hào)谚殊。都要學(xué)習(xí)、都要吃飯蛤铜、都要睡覺嫩絮。
類和對(duì)象有什么關(guān)系丛肢?
對(duì)象是對(duì)類的具體實(shí)現(xiàn)。就像學(xué)生是一個(gè)類的概念絮记,是學(xué)生都有名字摔踱、都有性別、年齡怨愤、學(xué)號(hào)派敷,都要學(xué)習(xí)、都要吃飯撰洗、都要睡覺篮愉。那么具體的一個(gè)學(xué)生,比如小明同學(xué)差导,他的名字叫小明试躏,性別男、年齡10歲设褐、學(xué)號(hào)666颠蕴,每天拼命的學(xué)習(xí)、用筷子吃飯助析、一般側(cè)臥著睡覺犀被。小明同學(xué)是廣大學(xué)生群體中具體的一個(gè)。那么我們就稱小明是學(xué)生類的一個(gè)對(duì)象外冀。
先有類還是先有對(duì)象寡键?
我們常說“他們這類人怎么怎么著”,再結(jié)合“類是對(duì)一群實(shí)體的共同特點(diǎn)的抽象概括”雪隧。所以西轩,現(xiàn)實(shí)生活中,先有對(duì)象脑沿,后有類藕畔。而代碼中,對(duì)象是對(duì)類的具體實(shí)現(xiàn)庄拇,我們要先創(chuàng)建出類劫流,才能具體的通過這個(gè)類產(chǎn)生對(duì)象。換句話說丛忆,類是我們?cè)O(shè)計(jì)的一個(gè)模板,所有的對(duì)象都是根據(jù)模板來生成的仍秤。因此熄诡,代碼中,先有類后有對(duì)象诗力。
類長(zhǎng)什么樣凰浮?
1. 用class修飾
2. 里面有? 屬性我抠、方法。
對(duì)象長(zhǎng)什么樣袜茧?
現(xiàn)實(shí)中菜拓,萬物皆對(duì)象〉严茫看得見的摸得著的都是對(duì)象纳鼎。代碼里,有具體屬性值裳凸,并能夠去執(zhí)行一定數(shù)量方法的贱鄙,都稱為對(duì)象。前提是得有一個(gè)類姨谷,對(duì)象是通過類逗宁,用new關(guān)鍵字new出來的。
我們?cè)撊绾稳ザx一個(gè)類梦湘?
class+類名+代碼塊瞎颗,代碼塊里有這個(gè)類相對(duì)應(yīng)的屬性、方法捌议。
我們?cè)撊绾稳ヂ暶饕粋€(gè)對(duì)象哼拔?
沒有對(duì)象怎么辦?new一個(gè)對(duì)象禁灼!
Student student_01 = new Student();
其中管挟,student_01就是Student類的一個(gè)對(duì)象。通過以上格式還可以new出來無數(shù)個(gè)不同的對(duì)象弄捕。如:
Student student_02 = new Student();
Student student_03 = new Student();
Student student_04 = new Student();
......