C 基礎解析之 封裝

2022-04-21 23:52:20 字數 3537 閱讀 2817

在c#語言中物件導向有三個特性封裝繼承多型。我們首先來簡單的理解一下物件導向,所謂物件導向就是應用程式開發中的技巧和概念,主要就是一種設計的思路,簡稱oop技術,物件導向的程式語言可以使得複雜的工作條理變的清晰,編寫起來也就容易些,它還具有重用性、靈活性和擴充套件性。但是,說實話如果具體說物件導向還真說不清楚,就好比你問我什麼是數學。

no.1 物件導向的基礎核心是類和物件。所謂類就是具有相同屬性和行為的物件的集合。比如說:導演是個類,演員是個類,觀眾也是乙個類,他們都有相同的屬性和行為,都是抽象類,都是指一群人。所謂物件就是一切皆為物件,比如說:一台電腦、乙個手機、乙個蘋果等等都是物件。物件描述了乙個物體的特性,抽象乙個實際的物體或乙個方法。

在物件中它的訪問修飾符有四個:public公有許可權、internal程式集保護許可權、protected保護許可權、private私有許可權。類的成員也包括三個:字段、屬性、方法。欄位是儲存類的資訊資料,大部分欄位是私有的。屬性是為了保護私有字段,是公有的,其中屬性包括兩個訪問器乙個是唯讀屬性get訪問器和只寫屬性set訪問器。方法是類的行為,就是類要做的事情。

no.2 簡單的了解了物件導向,接下來我們就來看一下方法的定義,所謂方法就是行為,也就是要幹什麼事情,對於方法的定義也沒有具體的說法,比較廣泛,一般就是指為了達到某種目的為了獲得某種東西而採取的一種手段或者行為方式。

建立類:

1

class regisseur //

演員類2

7set

8 }9//

選擇電影名稱的方法,引數moviename是電影名稱

10public

void selectmoviename(string moviename)

11

14 }

在main方法中呼叫類的方法:

1

class program

2

10 }

執行結果:

來看一下定義類的方法的語法:

訪問修飾符 返回型別 方法名(引數列表)

我來簡單的解釋一下,這個返回型別就是資料型別,表示呼叫完這個方法之後可以得到乙個值。如果不返回值得話,那麼這個型別就是void,

比如:private string qingpingguo(string n) 返回字串   返回值用關鍵字「return」 返回

public void qingpingguo(string n)不返回任何值

方法名就是給方法取個名稱,要注意的是在取名字的時候第乙個字母要大寫。

引數列表就是在呼叫方法的時候可以通過引數給方法傳遞資料,方法根據不同的引數產生不同的結果。

不如:private string  qingpingguo(string n)引數是乙個,字串型別

private void qingpingguo(int i,string n)引數兩個,int 和字串

方法的主體就是這個方法要做的功能。

no.3 在方法的定義中有一種方法叫靜態方法,靜態方法就是可以不用例項化物件,然後直接呼叫,語法如下:

訪問修飾符 static 返回型別 方法名(引數列表)

靜態方法相比普通方法來說比較簡單,尤其是在呼叫的時候,雖然結果都是一樣的,但是,我不推薦大家用靜態方法,為什麼?因為被static關鍵字修飾的靜態的屬性和方法都是在程式開始執行的時候就建立了,一直到程式結束才消失,它浪費了很多的資源,所以希望大家在沒有必要的情況下還是不要用靜態方法。

no.4方法的過載

方法的過載就是方法的名稱相同,方法的引數型別不同或者引數的數量不同

例子:

1

class regisseur

2

8public

void qingpingguo(string title, string player, string player1)//

三個引數

9

13 }

在main方法中呼叫過載方法

1

static

void main(string args)

2

8

執行結果:

這個方法的過載比較簡單,我也就不做過多說明了,要注意一點的是方法的返回型別不同不叫做過載。

no.5構造方法

構造方法的作用就是在例項化物件時可以給屬性賦值,這樣可以簡單化我們的**,它的特殊之處就是方法名稱和類名相同,並且沒有返回型別,而且構造方法一般用public訪問修飾符。如果類裡面沒有定義好的構造方法,在編譯器裡會自動建立乙個無引數的構造方法,這個構造方法就好似隱式構造方法,我們自己寫的那個方法叫顯式構造方法,在隱式構造方法中編譯器會自動給字段賦值。對於構造方法相對比較簡單一些,我們就不深究了。

no.6引數傳遞

引數的傳遞分為,值傳遞和引用傳遞,對於值傳遞我想大家一看字面意思就會明白的。所以還是直接逃到引用傳遞吧!

在引用傳遞我們要注意乙個關鍵字「ref」在定義方法時,引用傳遞的引數前必須加關鍵字ref,比如:static string qingpingguo(ref string name){} 還有就是在傳遞引數前必須賦值。我們來看一下:

1

class program

2

11static

string qingpingguo(ref

string name)

12

17 }

執行結果:

在這裡要注意的是值傳遞傳遞的是引數的複製品,不是它本身;引用傳遞傳遞的是引數本身。在剛才我們所說的關鍵字ref,還有乙個是和它對應的就是out,當控制傳遞**用方法時,在方法中對引數所做的任何更改都將反映在該變數中。 當希望方法返回多個值時,宣告 out 方法非常有用。使用 out 引數的方法仍然可以返回乙個值。乙個方法可以有乙個以上的 out 引數。 若要使用 out 引數,必須將引數作為 out 參數顯式傳遞到方法。簡單的說他們兩個的區別是ref要求引數在傳遞給函式前要初始化,而out就不需要,out是在方法中對其完成初始化,它是常見於平台呼叫中。out適用在需要return多個返回值得地方,而ref則用在需要被呼叫的方法修改呼叫者的引用的時候。

總結:1.物件導向的類和方法;

2.方法的定義;

3.靜態方法;

4.方法的過載;

5.構造方法;

6.引數傳遞;

the end!

Java基礎之封裝

概念 將類裡面一些隱蔽的資訊用特殊的方法隱藏起來,不允許外部程式隨意訪問,而是通過該類設定的特殊方法來實現對這些隱蔽資訊的訪問和操作。好處 1.只能通過規定的方法訪問 2.方便修改和實現 封裝步驟 1.修改屬性的可見性 2.建立getter setter方法 3.在getter setter方法中加...

c 基礎彙總 封裝

說到封裝,其實是比較基礎類的問題,它為程式設計提供了系統與系統,模組與模組,類與類之間互動的實現手段。在.net中,一切看起來都已經被包裝在.net framework這一複雜的網路中,提供給最終開發人員的是成千上萬的型別,方法和介面,而framework內部一切已經做好了封裝。作為乙個初級gis程...

JAVA程式設計基礎之封裝

在外部介面保持不變的情況下,自己可以修改內部實現 private 只能用於修飾內部靜態類,一般不提倡 預設情況,如果沒有任何訪問控制修飾符,則表示相同包內的類可以訪問該類 protected 只有繼承自己的子類才能訪問該成員 private 除自己外其他任何類都不能訪問該成員 預設情況,如果沒有任何...