類,物件,引用

2022-09-16 21:30:24 字數 3069 閱讀 2237

登入

原 類、物件、例項、類的物件,物件的例項,物件的引用

1、什麼是類?請對比類和物件例項之間的關係

類可以理解為一種型別,比如你定義了一種型別叫「中國人」

物件可以理解為類中的具體的例項,「你」就是「中國人」中實實在在的乙個物件

也就是說給類中的各個屬性賦予了某乙個特定的值,比如:姓名,年齡,身份證號,這樣乙個抽象的「中國人」就例項化成乙個具體的實實在在存在的「人」了

2、什麼是類 物件 例項?

類(class)實際上是對某種型別的物件定義變數和方法的原型。它表示對現實生活中一類具有共同特徵的事物的抽象,是物件導向程式設計的基礎

物件(object)是一件事、乙個實體、乙個名詞,可以獲得的東西,可以想象有自己的標識的任何東西。一些物件是活的,一些物件不是。現實世界中的例子有汽車、人、房子、桌子、植物、支票、雨衣。

例項和物件是一種東西,叫法不同而已

你問這應該去j**a裡問吧。。vb是面向過程的。。。沒那東西

j**a裡的話~

類 多個物件所共有的屬性和操作需要組合成乙個單元,稱為「類」

定義:具有相同屬性和共同行為的 一組物件的集合

現實裡舉例:雇員類(收銀員 系統管理員 **員等)

物件就是類的成員 也就是實體(而類是泛指)

類是用來描述實體(物件)的的「模板」或「原型」

而物件是實際的實體,每個物件都是類的乙個例項 所以通常「為類建立乙個物件」也被叫做「為類建立乙個例項」 從物件角度講就是「例項化乙個類的物件」

記不清楚了,反正大概意思是這樣了,以前看書的時候是那麼說的

類是有同類特徵事物的抽象化,物件是實列化,當然這個例項是在程式的世界。類就相當於你心中有槍,但是打敵人,你心中有槍是不行滴,你得有真槍,那就是物件。有了物件之後,你就能用物件的**fire();方法,可以打敵人了。 那麼這個fire方法就是槍類特有的方法,意思就是你知道槍能**,它有**,和刺刀的功能。但是你並沒有槍,等你有物件了,你有槍了,你就能用了。

追問 謝謝幫助,我對你的回答理解是,物件是現實世界存在的,類是從物件屬性&方法中總結出來的共有通用部分,類本身抽象的。 我理解, 我的問題是:物件就是現實世界中的實物,它和例項又是怎麼區分的, 是物件和例項的區分

回答 物件就是類的例項化

不是乙個層面的概念!

簡單來說:物件是相對於類來說的,而例項是相對於引用來說的。

類就像是一種設計圖,而物件就像產品。

汽車設計圖和汽車的關係就可以想象為類和物件。

你說:fa不就是類father的物件嘛!它本身不就是相當於類的例項了嗎?

fa是乙個引用並不是類的例項,new father();才建立的乙個例項。

舉個例子:

「我的汽車」這個詞就是乙個引用,他指向了我實實在在擁有的汽車,而這四個字本身並不是汽車。

不要把物件和例項搞混了,兩個不是乙個層面的問題。

類物件就是class物件,用於描述類,所以叫類物件。例項物件就是根據class物件的描述,在推記憶體中建立的物件,表示乙個class檔案的例項,所以叫例項物件。 每乙個class檔案(由.j**a檔案編譯來的.class檔案)要想在記憶體中new乙個物件,首先要現在記憶體中建立乙個表示.class檔案本身的物件,這個物件的通常叫class物件,即類物件,再根據這個class物件建立例項例項物件

j**a裡常說的一句話:用類例項化物件。

型別–顧名思義,就是乙個類別,比如說數值型包括int,float等等,int 就是整型,就是沒有小數點.float呢就是浮點型,就是有小數點.還有其他型別,在這只做簡單的說明.

物件–就是把具有相同部分的物體,抽象出乙個概念.比如:車模型-就是乙個物件,依據這個物件我建立了乙個事實在在的轎車,那這個轎車就是乙個例項.而這個過程就叫做例項化.重點:3、j**a中,類的物件,物件的例項,物件的引用,三者如何進行區分,有何區別呢?

首先,沒有「物件的例項」這一說法,只有類的例項,而類的例項,只的就是類的物件,簡稱 物件。

而類的引用,你可以通俗一點來理解,就是類物件的變數名,因為乙個類的物件的變數名,其實是只的一段記憶體位置。

故而,類的物件,就是類的例項,也就是我們通常說的物件。

而類的引用,則是指該類例項化之後,在記憶體的位址(用變數名表示)

例如:object obj=new object();

其中,類名固然就是object,物件的引用就是obj(代表的記憶體位址)了

沒有「物件的例項」這種叫法,正確的叫法是「類的例項」。

沒有學過j**a, 給你說說我的理解吧!

在j**a和c++這類語言中,物件(物件和例項是同義詞)實際上就是記憶體中的儲存資料一塊固定儲存空間,並且物件還有一系列的操作這塊儲存空間的方法。

物件的引用相當於物件的名字,名字與物件本身的區別就好比你的名字和你本人的區別。j**a裡使用物件只能通過引用的方式,基本資料型別的變數和c\c++的變數規則一樣。

如: usertype ut = new usertype(); // ut是引用,實際的物件在記憶體裡。

ut = new usertype(); /現在ut是另乙個物件的引用,先前的物件被垃圾**了(因為先前的物件不能被再次使用了)。/

usertype ut2; // 定義了乙個引用ut2,他不引用任何物件,不能使用。。。。

ut2 = new usertype(); // 然ut2成為乙個物件的引用。

usertype ut3 = new usertype();

usertype ut4 = new usertype();

ut3 = ut4; // 現在ut3引用ut4的物件,這裡不是賦值。。。

int a = 5;

int b = 4;

a = b; // 這裡是賦值。 a b 依然引用不同的物件

型別轉換就是把一種型別的物件當做另一種型別的物件來使用。一些型別轉換會自動發生,另一些需要強制型別轉換,強制一般都會出問題,自動的也需要注意。

物件的例項 這個我不知道你指什麼

我知道的: 類, 例項物件, 物件的引用 三者

類是乙個模具, 物件是用類這個模具實際生成的實際存在的物件,叫例項物件

物件是放在堆中的, 物件的引用是放在棧中的, 通過棧中的引用得到物件

父類引用子類物件

父類引用子類物件 package test class fruit1 string get1 父類引用子類物件 如果父類的方法可以被重寫 靜態方法不能被重寫,因為它是隨著類的建立而存在於記憶體,只有乙份 並且已經重寫,那麼呼叫的是子類的方法 反之,則呼叫父類裡的方法 public class fru...

const修飾類物件 物件指標 物件引用

const修飾的物件,該物件的任何非const成員函式都不能被呼叫,因為任何非const成員函式會有修改 成員變數的企圖。class aaa const aaa a new aaa a func1 錯誤 編譯會報 error c2662 aaa func1 不能將 this 指標從 const aa...

父類引用指向子類物件

要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者就是前者是父類。我可以通過 cat c new cat 例項化乙個cat的物件,這個不難理解。但當我這樣定義時 animal a new cat 這代表什麼意思呢?很簡單,它表示我定義了乙個animal...