成員和物件有什么區別?舉例子說明

2023-01-31 19:05:47 字數 5701 閱讀 1965

1樓:奮鬥de聲音

成員是類中的屬性和方法;物件是類的例項。

比如動物類:

成員:動物的器官(屬性)和動物的行為(方法)物件:動物類中的一個具體動物,例如大象

2樓:匿名使用者

物件是具體化,成員是類的一部分。就好像人是類,那麼手就是人的成員。那麼你(三千年莫言)就是物件囉。

3樓:匿名使用者

成員是類定義中的一個部分,物件是類的一個例項

4樓:單綾

物件是類的具體化,物件肯定包含有類中定義的成員變數,成員是物件的一部分才對

class a

a obj;

這裡 變數a 和函式 fun都是類a的成員, obj是類a的物件 ,作為a的例項化,obj肯定也有自己的a和fun

例項成員和類成員的區別

5樓:韓露露

1全部1.例項成員

例項成員包括例項成員變數和例項成員方法,例項成員變數(物件的欄位)和方法(物件的方法)是隸屬於物件的,例項變數的值代表了該物件的狀態,例項成員方法代表了該物件的行為。只有建立了物件之後才能訪問例項成員變數和例項成員方法,通過"物件名.變數名(方法名)"的方法可以訪問例項成員

2.類成員

類成員(靜態成員)需要用關鍵字static標識,類成員包括,類成員變數和類成員方法,類成員是隸屬於類的,意思是說通過類名可以直接訪問類成員變數或呼叫類成員方法,即使沒有建立物件,也能夠引用類成員

二、類變數和例項變數的區別:

1、宣告的差別:沒有使用static宣告的為例項成員屬性,用static 宣告的為類成員屬性。

2、儲存結構的差別:對於例項變數而言,每個物件的每個例項成員變數都分配了一個儲存單元使得不同物件的例項成員變數具有不同的值;而對於類成員變數只分配一個儲存單元,使得所有的物件共同使用一個類成員變數。

3、引用方式的差別: 例項成員變數對於物件,通過物件進行訪問;類成員變數屬於類,既可以通過物件,也可以通過類訪問。

6樓:冬夏

類:是抽象的概念集合,表示的是一個共性的產物;類之中定義的是屬性和行為(方法);

物件:物件是一種個性的表示,表示一個獨立的個體,每個物件擁有自己獨立的屬性,依靠屬性來區分不用物件。

那麼可以依靠一句話來總結出類和物件的區別:類是物件的模板,物件是類的例項,類只有通過物件才可以使用,而在開發之中應該先產生類,之後在產生物件。

類不能直接使用,物件可以直接使用

那麼類定義完成之後,肯定無法直接使用,如果要使用,必須依靠物件,那麼由於類屬於引用資料型別,所以物件的產生格式如下。

格式一:宣告並例項化物件

類名稱 物件名稱 = new 類名稱() ;

格式二:分佈完成

宣告物件: 類名稱 物件名稱 = null ;

例項化物件:物件名稱 = new 類名稱() ;

7樓:夏爾

例項成員是例項獨有的成員變數只在此物件內有用 類成員是類的靜態變數static 這種變數是在任意一個該類的物件裡都是相同的 你在某處改變這一靜態變數 其他引用的地方也就改變了 可以想成一個全域性變數

8樓:烏清奇

例項成員變數:非靜態成員變數 類成員變數:靜態成員變數. 對於這個類的任何例項都是一樣的值,不屬於某個例項,所以叫類的成員變數

9樓:你是用片假名

類的成員包括:欄位,屬性,方法

類成員變數和例項成員變數分別指什麼有什麼區別(舉例說明)?

10樓:

例如定義一個類:

class text

如果你想訪問temp屬性,你就必須先建立一個text的物件,才能訪問:text  b = new text();

b.temp;這就是例項成員變數。

而你想 訪問number的話,不用建立text的例項就可以訪問,就像這樣:text.number.這就是類成員變數。

主要區別就是訪問是需不需要建立物件,而對於類成員變數,所有物件是共享一個變數的。

11樓:

成員變數就是類裡面的變數,不區分static

沒有static的成員變數叫例項變數

加了static就叫類變數,實際上和類沒啥關係,就相當於一個寄生物一樣,而且除了類變數外,你喜歡叫全域性變數(public 修飾)、靜態變數都行

最後他倆統稱類的成員變數

完善一下回答,舉個栗子吧

class test

實際使用時,例項變數是存在於類的例項中的,例項就是通過類來建立的具體某個物件,這個物件會維護自身所有的例項變數,所以相同類的不同例項間去set同名例項變數是互不影響的。

也就是要訪問instance_var,需要先new一個test物件test,再通過test.getinstancevar()或test.instance_var來訪問例項變數。

而類變數則直接通過實際的類來進行訪問,也就是要訪問class_var,直接使用test.class_var即可,該變數存在靜態區的某個固定位置(如果是靜態物件,則物件存在堆區,靜態區存的是指向該物件的地址),假設在多執行緒下同時訪問該變數,獲取的永遠是同一份資料,比如一個靜態的物件,多執行緒下獲取到的永遠都是指向同一個物件。

類變數的使用也就引申出了多執行緒下類變數的安全性問題,比如一個執行緒獲取到該變數後,另一個執行緒修改了它,那麼原來的執行緒拿到的是舊值,以此為基礎所做的操作就很大概率會出現不正確的結果,也就引申出鎖和同步,也就是說一個執行緒在操作這個公共資源時,會將該變數鎖住,禁止其他執行緒拿到修改該變數的許可權,當然拿修改許可權這部分是需要我們手動去寫的,**是不會乖乖地自己識別哪個公共資源被鎖的。

可能有沒講明白的地方,或是錯漏,請大家指正,多謝

12樓:匿名使用者

例項成員變數:非靜態成員變數

類成員變數:靜態成員變數. 對於這個類的任何例項都是一樣的值,不屬於某個例項,所以叫類的成員變數

13樓:柏雅苼

……不在方法中定義的變數為成員變數。成員變數有兩種,有static修飾的為靜態成員變數,沒有static的為例項變數

什麼是類,什麼是物件,類和物件之間的關係

14樓:12認得

類的概念:類是具有相同屬性和服務的一組物件的集合。它為屬於該類的所有物件提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。

在物件導向的程式語言中,類是一個獨立的程式單位,它應該有一個類名幷包括屬性說明和服務說明兩個主要部分。

物件的概念:物件是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個物件由一組屬性和對這組屬性進行操作的一組服務組成。

從更抽象的角度來說,物件是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要儲存的資訊和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。客觀世界是由物件和物件之間的聯絡組成的。類與物件的關係就如模具和鑄件的關係,類的例項化結果就是物件,而對一類物件的抽象就是類。

類描述了一組有相同特性(屬性)和相同行為(方法)的物件。上面大概就是它們的定義吧,也許你是剛接觸物件導向的朋友, 不要被概念的東西搞暈了,給你舉個例子吧,如果你去中關村想買幾臺組裝的pc 機,到了那裡你第一步要幹什麼,是不是裝機的工程師和你坐在一起,按你提供的資訊和你一起完成一個裝機的配置單呀,這個配置單就可以想象成是類,它就是一張紙,但是它上面記錄了你要買的pc 機的資訊,如果用這個配置單買10 臺機器,那麼這10 臺機子,都是按這個配置單組成的,所以說這10 機子是一個型別的,也可以說是一類的。那麼什麼是物件呢,類的例項化結果就是物件,用這個配置單配置出來(例項化出來)的機子就是物件,是我們可以操作的實體,10 臺機子,10 個物件。

每臺機子都是獨立的,只能說明他們是同一類的,對其中一個機做任何動作都不會影響其它9 臺機器,但是我對類修改,也就是在這個配置單上加一個或少一個配件,那麼裝出來的9 個機子都改變了,這是類物件的關係(類的例項化結果就是物件)。

就不說他的概念,如果你想建立一個電腦教室,首先要有一個房間, 房間裡面要有n 臺電腦,有n 張桌子, n 把椅子, 白板, 投影機等等,這些是什麼,剛才咱們說了,這就是物件,能看到的一個個的實體,可以說這個電腦教室的單位就是這一個個的實體物件, 它們共同組成了這個電腦教室,那麼我們是做程式,這和麵向物件有什麼關係呢?開發一個系統程式和建一個電腦教室類似,你把每個獨立的功能模組抽象成類,形成物件,由多個物件組成這個系統,這些物件之間都能夠接收資訊、處理資料和向其它物件傳送資訊等等相互作用。就構成了物件導向的程式。

上面已經介紹過了,物件導向程式的單位就是物件,但物件又是通過類的例項化出來的,所以我們首先要做的就是如何來宣告類,做出來一個類很容易,只要掌握基本的程式語法定義規則就可以做的出來,那麼難點在那裡呢?一個專案要用到多少個類,用多少個物件,在那要定義類,定義一個什麼樣的類,這個類例項化出多少個物件,類裡面有多少個屬性,有多少個方法等等,這就需要讀者通過在實際的開發中就實際問題分析設計和總結了。類的定義:

class 類名{}

類呢?上面講過來,使用類是為了讓它例項出物件來給我們用,這就要知道你想要的是什麼樣的物件了,像上面我們講的一個裝機配置單上寫什麼,你裝出來的機子就有什麼。比如說,一個人就是一物件,你怎麼把一個你看好的人推薦給你們領導呢?

當然是越詳細越好了:首先,你會介紹這個人姓名、性別、年齡、身高、體重、**、家庭住址等等。然後,你要介紹這個人能做什麼,可以開車,會說英語,可以使用電腦等等。

只要你介紹多一點,別人對這個人就多一點了解,這就是我們對一個人的描述, 現在我們總結一下,所有的物件我們用類去描述都是類似的,從上面人的描述可以看到, 做出一個類來,從定義的角度分兩部分,第一是從靜態上描述,第二是從動態上描述, 靜態上的描述就是我們所說的屬性,像上面我們看到的,人的姓名、性別、年齡、身高、體重、**、家庭住址等等。動態上也就是人的這個物件的功能,比如這個人可以開車,會說英語,可以使用電腦等等,抽象成程式時,我們把動態的寫成函式或者說是方法,函式和方法是一樣的。所以,所有類都是從屬性和方法這兩方面去寫, 屬性又叫做這個類的成員屬性,方法叫做這個類的成員方法。

class 人屬性:通過在類定義中使用關鍵字" var "來宣告變數,即建立了類的屬性,雖然在宣告成員屬性的時候可以給定初始值, 但是在宣告類的時候給成員屬性初始值是沒有必要的,比如說要是把人的姓名賦上張三,那麼用這個類例項出幾十個人,這幾十個人都叫張三了,所以沒有必要, 我們在例項出物件後給成員屬性初始值就可以了。

如: var $somevar;

方法(成員函式):

通過在類定義中宣告函式,即建立了類的方法。

如: function somefun(引數列表)

<?phpclass personfunction run() //這個人可以走路的方法}?上面就是一個類的宣告,從屬性和方法上宣告出來的一個類,但是成員屬性最好在宣告的時候不要給初始的值,因為我們做的人這個類是一個描述資訊,將來用它例項化物件,比如例項化出來10 個人物件,那麼這10 個人, 每一個人的名字、性別、年齡都是不一樣的,所以最好不要在這個地方給成員屬性賦初值,而是對每個物件分別賦值的。

用同樣的辦法可以做出你想要的類了,只要你能用屬性和方法能描述出來的實體都可以定義成類,去例項化物件。為了加強你對類的理解,我們再做一個類,做一個形狀的類,形狀的範圍廣了點, 我們就做個矩形吧,先分析一下,想一想從兩方面分析,矩形的屬性都有什麼?矩形的功能都有什麼?

class 矩形{//矩形的屬性矩形的長;矩形的寬;//矩形的方法

矩形的周長;

如果用這個類來建立出多個矩形物件,每個矩形物件都有自己的長和寬, 都可以求出自己的周長和麵積了。類的宣告我們就到這裡吧!!

同音詞和多義詞有何區別?舉例說明

1 同音詞和多義詞區別 兩者雖然都表現為一個語音形式對應多個意義,但前者各意義之間沒有聯絡,後者各意義之間則存在聯絡。2 例如 1 別去學校 的 別 和 別的學校 的 別 雖然語音相同,但意義沒有聯絡,所以是同音詞 2 走累了 和 車走了 中的 走 一個是 行走 的意思,另一個是 離開 的意思,兩個...

framily和family有什么區別

語法標註解釋 family英音 f 0 3mili 美音 f 0 3m 0 5l 0 1 以下結果由譯典通提供詞典解釋 名詞n.1.家,家庭 家人 c g my family is large.我的家是個大家庭。his family are all waiting for him.他的一家人都在等他...

方言和普通話有什麼區別舉例子方言詞語和普通話詞語有哪些不同舉幾個例子

方言和普通 話的區別 系統 普通話是一個語言系統,方言不是。使用地區 普通話是全國範圍通用,方言只是某一個地區的地方語言。表達和用法 區別很大。可以看 例子 發音 兩者區別很大。背景知識 方言缺少適當的書面語,語言未達到準確描述的程度 語言使用者沒有屬於自己的國家 這些語言受到歧視 同一民族 或國家...