【C++】什么是对象?什么是类?
“有對象嗎?沒有! new 一個。”當?shù)谝淮谓佑|面向程序設(shè)計語言Java時,大家都會拿這句話作為調(diào)侃,但是,作為一個大三的學生,如果還是對“對象”有著淺層次的理解,確實有點說不過去啦!
文章目錄
- 1、什么是對象?
- 1.1 現(xiàn)實世界中的含義:
- 1.2 程序設(shè)計中的含義:
- 2、什么是類?
1、什么是對象?
什么是對象?作為一個二十多歲的年輕人,乍一看,這還用說,當然就是結(jié)婚的對象啦。當然可以這樣理解,但是世界這么大,我也想去看看萬物世界,在看世界的過程中,我們在現(xiàn)實中能看到的每一個能叫出來名字的都可以被理解為對象,有些對象是抽象的,比如一場球賽,一場音樂會。有些是具體的,比如張三、李四、小花狗。
1.1 現(xiàn)實世界中的含義:
在現(xiàn)實世界中,任何事物都是對象。 它可以是一個有形的具體存在的事物,例如一張板凳,一臺電腦,一個學生,一輛汽車,也可以是無形的,抽象的事物,例如一次演出,一場球賽等等,對象可以是簡單的,也可以是復雜的。
現(xiàn)實世界中的對象既具有靜態(tài)的屬性(或稱之為狀態(tài)),又具有動態(tài)的行為(或稱操作,功能)。 靜態(tài)屬性指的是“是什么”,動態(tài)屬性指的是“做什么”。 比如:潘小藍的博客名稱是潘小藍,性別是男,年齡18歲 ,這些被稱之為靜態(tài)屬性。潘小藍看博客,寫博客,或者正在看博客的你點擊鼠標點贊收藏這些需要做的事情被稱之為動態(tài)屬性。
有靜態(tài)屬性+動態(tài)屬性的事物我們稱之為對象。所以在現(xiàn)實世界中,對象一般可以表示為 屬性 + 行為。一個對象往往是由一組屬性和一組行為構(gòu)成的。
現(xiàn)實世界中的對象,具有以下特性:
- 每一個對象必須有一個名字以區(qū)別于其他對象。
- 用屬性來描述對象的某些特征。
- 有一組操作,每組操作決定對象的一個行為。
- 對象的行為可以分為兩類,一類是作用于自身的行為(例如我們在Java中的setXxx(),getXxx()方法,一種是作用于其他對象的行為。
1.2 程序設(shè)計中的含義:
程序設(shè)計中的對象是現(xiàn)實世界的另一種呈現(xiàn)。在面向?qū)ο蟪绦蛟O(shè)計中,對象是描述其屬性的數(shù)據(jù)以及對這些數(shù)據(jù)施加的一組操作封裝在一起構(gòu)成的統(tǒng)一體。
在C++中,每個對象都是由數(shù)據(jù)和操作代碼(通常用函數(shù)實現(xiàn))組成的,數(shù)據(jù)就是上文提到的屬性,操作代碼是上文提到的動態(tài)行為。
例如:一個學生就是一個對象,學號、姓名和成績等數(shù)據(jù)就是它的屬性,輸入或輸出姓名、學號、成績等操作就是前面提到的行為。
2、什么是類?
如果說對象是我們常說的女朋友,那么類就是女朋友的生產(chǎn)者和制造者。如果將多個女朋友的共同特征抽象出來,比如都是女生,都是18歲這些共有的屬性,或者共有的行為操作,比如愛生氣,愛撒嬌。將這些共有的屬性和行為抽象出來,抽象出來的就是一個類。 如果下次還像找類似的女朋友,那么就可以直接通過類實例化一個對象,共同壓馬路啦。類是對象的抽象,而對象是類的實例。
兩者之間的關(guān)系:
類和對象之間的關(guān)系是抽象和具體的關(guān)系。類是多個對象進行綜合抽象的結(jié)果,對象又是類的個體實物,一個對象是類的一個實例。 例如 : 雖然張三、李四、王五、潘小藍,每個人的性格、愛好、職業(yè)、特長等各有不同,但是基本特征是相似的,都具有相同的生理構(gòu)造,都能吃飯、說話、走路等,于是把他們統(tǒng)稱為“人”類,而具體的每一個人是人類的一個實例,也就是一個對象。
在面向?qū)ο蟪绦蛟O(shè)計中,總是先聲明類,再由類生成其對象。 類是建立對象的“模板”,按照這個模板所建立的一個個具體的對象,就是類的實際例子,通常成為實例。(就是我們通常所說的實例化,每個對象就是類的一個實際的例子)。舉個例子就是,在手工制作月餅的時候,先雕刻一個有凹下圖案的木模,然后在木模上抹油,接著將事先揉好的面塞進木模里,用力擠壓后,將木模反扣在桌上,一個漂亮地 圖案就會出現(xiàn)在月餅上了。這樣一個接著一個地,就可以制造出外形一模一樣的月餅。這個木模就好比是"類",制造出來的糕點就是所說的“對象”。
在C++語言中,把類中數(shù)據(jù)稱之為數(shù)據(jù)成員,類中的操作是用函數(shù)來實現(xiàn)的,這些函數(shù)成為成員函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的【C++】什么是对象?什么是类?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于android地图国内外研究,开题报
- 下一篇: WebIM原理解析