- 1、什麼是類?什麼是對象?對象與類的關係是什麼?
- 2、類與對象的關係是
- 3、類和對象有什麼關係?
- 4、php中對象,類與內存的關係
- 5、什麼是類,什麼是對象,類和對象之間的關係
類就是相同的數據和相同的一組對象的集合,即類是對具有相同數據結構和相同操作的一類對象的描述;對象是描述其屬性的數據以及對這些數據施加的一組操作封裝在一起構成的統一體,對象可以認為是:數據+操作;類和對象之間的關係是抽象和具體的關係。修改
對象
什麼是對象?
萬物皆對象。它包括現實中客觀存在的事物,也包括抽象的時間、規則、思維。簡單點說,對象具有狀態、行為和標識。
類
什麼是類?
具有相同特性和行為的對象組成的集合就是類,JAVA實際中的類就是指一個數據類型。
對象與類的關係
類是對象的抽象,而對象是類的具體實例。類與對象的關係:抽象(該抽象是名詞)與類的實例化就是對象,對象的共性特徵抽象(該抽象是動詞)出來就是類。
比如你要買一台PC,你在訂單上列出了這台PC的CPU和顯卡型號、顯示屏的大小、鍵盤是104還是87位、主機的顏色等等,這所有信息組成在一起就是一個電腦的類,但你只有它的參數並沒有一個符合這個要求的實物對象,而當服務員拿出了一台符合這個訂單的具體PC時,這個PC就是那個類的具體對象。
實習找工作遇到個印象較深的基礎面試問題,
面試官:男人和女人是同一個類嗎?
我:是同一類。
面試官:鋼筆和鉛筆是同一個類嗎?
我:是同一類。
面試官:男人和鋼筆是同一個類嗎?
我猶豫了3秒鐘,
我:不是同一類
面試官:看來你對基礎概念理解的還不到位啊。
這裡,首先你要懂得萬物皆對象,對象都是類的實例,而類是對象的抽象。那麼我在JAVA中就可以定義男人和鋼筆都是A類或B類或C類,而這個類可以是描述都是看的見或摸的着的特徵,亦或是什麼都不描述的但就是用來實例化男人和鋼筆的類(類可以是你隨性定義的),即男人和鋼筆是同一類。同理,時間和水是一類嗎?思維和手是一類嗎?都是的。
類和對象的關係:
類是對象的抽象,而對象是類的具體實例。類是抽象的,不佔用內存,而對象是具體的,佔用存儲空間。類是用於創建對象的藍圖,它是一個定義包括在特定類型的對象中的方法和變量的軟件模板。
類與對象的關係就如模具和鑄件的關係 類的實例化結果就是對象,而對一類對象的抽象就是類,類描述了一組有相同屬性和相同方法的對象。
使用類時的注意事項:
1、類的成員可以是其他類的對象,但不能以類自身的對象作為本類的成員,而類自身的指針和引用可以作為類的成員。
2、類定義必須以分號「;」結束。
3、類與結構體的區別:沒有明確指定類成員的訪問權限時,C++結構體的成員是公有的,而類的成員是私有的。
類的實例化對象存儲在內存的堆上,該對象有一個地址指向棧上的一個同名變量,這個同名變量的值就是對象的地址。
類的概念:類是具有相同屬性和服務的一組對象的集合。它為屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名並包括屬性說明和服務說明兩個主要部分。對象的概念:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。客觀世界是由對象和對象之間的聯繫組成的。類與對象的關係就如模具和鑄件的關係,類的實例化結果就是對象,而對一類對象的抽象就是類。類描述了一組有相同特性(屬性)和相同行為(方法)的對象。上面大概就是它們的定義吧,也許你是剛接觸面向對象的朋友, 不要被概念的東西搞暈了,給你舉個例子吧,如果你去中關村想買幾台組裝的PC 機,到了那裡你第一步要幹什麼,是不是裝機的工程師和你坐在一起,按你提供的信息和你一起完成一個裝機的配置單呀,這個配置單就可以想像成是類,它就是一張紙,但是它上面記錄了你要買的PC 機的信息,如果用這個配置單買10 台機器,那麼這10 台機子,都是按這個配置單組成的,所以說這10 機子是一個類型的,也可以說是一類的。那麼什麼是對象呢,類的實例化結果就是對象,用這個配置單配置出來(實例化出來)的機子就是對象,是我們可以操作的實體,10 台機子,10 個對象。每台機子都是獨立的,只能說明他們是同一類的,對其中一個機做任何動作都不會影響其它9 台機器,但是我對類修改,也就是在這個配置單上加一個或少一個配件,那麼裝出來的9 個機子都改變了,這是類對象的關係(類的實例化結果就是對象)。就不說他的概念,如果你想建立一個電腦教室,首先要有一個房間, 房間裏面要有N 台電腦,有N 張桌子, N 把椅子, 白板, 投影機等等,這些是什麼,剛才咱們說了,這就是對象,能看到的一個個的實體,可以說這個電腦教室的單位就是這一個個的實體對象, 它們共同組成了這個電腦教室,那麼我們是做程序,這和面向對象有什麼關係呢?開發一個系統程序和建一個電腦教室類似,你把每個獨立的功能模塊抽象成類,形成對象,由多個對象組成這個系統,這些對象之間都能夠接收信息、處理數據和向其它對象發送信息等等相互作用。就構成了面向對象的程序。上面已經介紹過了,面向對象程序的單位就是對象,但對象又是通過類的實例化出來的,所以我們首先要做的就是如何來聲明類,做出來一個類很容易,只要掌握基本的程序語法定義規則就可以做的出來,那麼難點在那裡呢?一個項目要用到多少個類,用多少個對象,在那要定義類,定義一個什麼樣的類,這個類實例化出多少個對象,類裏面有多少個屬性,有多少個方法等等,這就需要讀者通過在實際的開發中就實際問題分析設計和總結了。類的定義:class 類名{}類呢?上面講過來,使用類是為了讓它實例出對象來給我們用,這就要知道你想要的是什麼樣的對象了,像上面我們講的一個裝機配置單上寫什麼,你裝出來的機子就有什麼。比如說,一個人就是一對象,你怎麼把一個你看好的人推薦給你們領導呢?當然是越詳細越好了:首先,你會介紹這個人姓名、性別、年齡、身高、體重、電話、家庭住址等等。然後,你要介紹這個人能做什麼,可以開車,會說英語,可以使用電腦等等。只要你介紹多一點,別人對這個人就多一點了解,這就是我們對一個人的描述, 現在我們總結一下,所有的對象我們用類去描述都是類似的,從上面人的描述可以看到, 做出一個類來,從定義的角度分兩部分,第一是從靜態上描述,第二是從動態上描述, 靜態上的描述就是我們所說的屬性,像上面我們看到的,人的姓名、性別、年齡、身高、體重、電話、家庭住址等等。動態上也就是人的這個對象的功能,比如這個人可以開車,會說英語,可以使用電腦等等,抽象成程序時,我們把動態的寫成函數或者說是方法,函數和方法是一樣的。所以,所有類都是從屬性和方法這兩方面去寫, 屬性又叫做這個類的成員屬性,方法叫做這個類的成員方法。class 人{成員屬性:姓名、性別、年齡、身高、體重、電話、家庭住址成員方法:可以開車, 會說英語, 可以使用電腦}屬性:通過在類定義中使用關鍵字” var “來聲明變量,即創建了類的屬性,雖然在聲明成員屬性的時候可以給定初始值, 但是在聲明類的時候給成員屬性初始值是沒有必要的,比如說要是把人的姓名賦上張三,那麼用這個類實例出幾十個人,這幾十個人都叫張三了,所以沒有必要, 我們在實例出對象後給成員屬性初始值就可以了。如: var $somevar;方法(成員函數):通過在類定義中聲明函數,即創建了類的方法。如: function somefun(參數列表){ … … }?phpclass Person{//下面是人的成員屬性var $name; //人的名字var $sex; //人的性別var $age; //人的年齡//下面是人的成員方法function say() //這個人可以說話的方法{echo “這個人在說話”;}function run() //這個人可以走路的方法{echo “這個人在走路”;}}?上面就是一個類的聲明,從屬性和方法上聲明出來的一個類,但是成員屬性最好在聲明的時候不要給初始的值,因為我們做的人這個類是一個描述信息,將來用它實例化對象,比如實例化出來10 個人對象,那麼這10 個人, 每一個人的名字、性別、年齡都是不一樣的,所以最好不要在這個地方給成員屬性賦初值,而是對每個對象分別賦值的。用同樣的辦法可以做出你想要的類了,只要你能用屬性和方法能描述出來的實體都可以定義成類,去實例化對象。為了加強你對類的理解,我們再做一個類,做一個形狀的類,形狀的範圍廣了點, 我們就做個矩形吧,先分析一下,想一想從兩方面分析,矩形的屬性都有什麼?矩形的功能都有什麼?class 矩形{//矩形的屬性矩形的長;矩形的寬;//矩形的方法矩形的周長;如果用這個類來創建出多個矩形對象,每個矩形對象都有自己的長和寬, 都可以求出自己的周長和面積了。類的聲明我們就到這裡吧!!
原創文章,作者:Q3U38,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/126594.html