類的對(duì)象和成員
文章出處:http://www.fang1.net 作者:興邦研發(fā)部 人氣: 發(fā)表時(shí)間:2014年11月10日
類的對(duì)象和成員
1、 類成員
一般希望類中一些數(shù)據(jù)不被隨意修改, 只能按指定方法修改, 既隱蔽一些數(shù)據(jù)。 同樣一些函數(shù)也不希望被其它類程序調(diào)用, 只能在類內(nèi)部使用。 如何解決這個(gè)問(wèn)題呢?可用訪問(wèn)權(quán)限控制字,常用的訪問(wèn)權(quán)限控制字如下:private ( 私有),public (公有) 。在數(shù)據(jù)成員或函數(shù)成員前增加訪問(wèn)權(quán)限控制字,可以指定該數(shù)據(jù)成員或函數(shù)成員的訪問(wèn)權(quán)限。
私有數(shù)據(jù)成員只能被類內(nèi)部的函數(shù)使用和修改, 私有函數(shù)成員只能被類內(nèi)部的其它函數(shù)調(diào)用。 類的公有函數(shù)成員可以被類的外部程序調(diào)用, 類的公有數(shù)據(jù)成員可以被類的外部程序直接使用修改。公有函數(shù)實(shí)際是一個(gè)類和外部通訊的接口,外部函數(shù)通過(guò)調(diào)用公有函數(shù), 按照預(yù)先設(shè)定好的方法修改類的私有成員。對(duì)于上述例子,name 和 age 是私有數(shù)據(jù)成員,只能通過(guò)公有函數(shù) SetName()和 SetAge()修改,既它們只能按指定方法修改。
這里再一次解釋一下封裝, 它有兩個(gè)意義, 第一是把數(shù)據(jù)和處理數(shù)據(jù)的方法同時(shí)定義在類中。第二是用訪問(wèn)權(quán)限控制字使數(shù)據(jù)隱蔽。
2、 類的對(duì)象
Person 類僅是一個(gè)用戶新定義的數(shù)據(jù)類型,由它可以生成 Person 類的實(shí)例,C#語(yǔ)言叫
對(duì)象。用如下方法聲明類的對(duì)象: Person OnePerson=new Person();此語(yǔ)句的意義是建 立
Person 類對(duì)象,返回對(duì)象地址賦值給 Person 類變量 OnePerson。也可以分兩步創(chuàng)建 Person
類的對(duì)象:Person OnePerson;OnePerson=new Person();OnePerson 雖然存儲(chǔ)的是 Person 類
對(duì)象地址,但不是 C 中的指針,不能象指針那樣可以進(jìn)行加減運(yùn)算,也不能轉(zhuǎn)換為其它類
型地址, 它是引用型變量, 只能引用( 代表)Person 對(duì)象, 具體意義參見以后章節(jié)。 和 C、 C++不同,C#只能用此種方法生成類對(duì)象。
在程序中, 可以用 OnePerson.方法名或 OnePerson.數(shù)據(jù)成員名訪問(wèn)對(duì)象的成員。 例如:
OnePerson.Display(),公用數(shù)據(jù)成員也可以這樣訪問(wèn)。注意,C# 語(yǔ)言中不包括 C++語(yǔ)言中
的->符號(hào)。