1. 程式人生 > >C#、屬性和方法,結構和類(建構函式)

C#、屬性和方法,結構和類(建構函式)

 

一、

定義一個類時,等於定義了一個數據型別的藍圖。

這實際上並沒有定義任何的資料,但它定義了類的名稱意味著什麼,也就是說,類的物件由什麼組成及在這個物件上可執行什麼操作。

物件是類的例項。構成類的方法和變數成為類的成員。

 

類的定義:

類的定義是以關鍵字 class 開始,後跟類的名稱。

類的主體,包含在一對花括號內。

 

類定義的一般形式:

<access specifier> class  class_name

{

    // member variables

    <access specifier> <data type> variable1;

    ...

    <access specifier> <data type> variableN;

    // member methods

    <access specifier> <return type> method1(parameter_list)

    {

        // method body

    }

}

 

訪問識別符號 <access specifier> 指定了對類及其成員的訪問規則。如果沒有指定,則使用預設的訪問識別符號。類的預設訪問識別符號是 internal,成員的預設訪問識別符號是 private

資料型別 <data type> 指定了變數的型別,返回型別 <return type>

指定了返回的方法返回的資料型別。

 

二、屬性

屬性是類,結構和介面的命名成員。

類或結構中的成員變數或方法稱為域。

屬性是域的擴充套件,且可使用相同的語法來訪問。

它們使用訪問器讓私有域的值可被讀寫或操作。

屬性不會確定儲存位置。

相反,它們具有可讀寫或計算它們值的訪問器。

 

訪問器

屬性的訪問器包含有助於讀取或計算或設定屬性的可執行語句。

訪問器宣告可包含get訪問器,set訪問器。

 

三、方法

            一個方法是把一些相關的語句組織在一起,用來執行一個任務的語句塊。每一個 C# 程式至少有一個帶有 Main 方法的類。

要使用一個方法,您需要:

  • 定義方法
  • 呼叫方法

定義方法:

當定義一個方法時,從根本上說是在宣告它的結構的元素。

<Access Specifier> <Return Type> <Method Name>(Parameter List)

{

   Method Body

}

Access Specifier:訪問修飾符,這個決定了變數或方法對於另一個類的可見性。

Return type:返回型別,一個方法可以返回一個值。返回型別是方法返回的值的資料型別。如果方法不返回任何值,則返回型別為 void

Method name:方法名稱,是一個唯一的識別符號,且是大小寫敏感的。它不能與類中宣告的其他識別符號相同。

Parameter list:引數列表,使用圓括號括起來,該引數是用來傳遞和接收方法的資料。引數列表是指方法的引數型別、順序和數量。引數是可選的,也就是說,一個方法可能不包含引數。

Method body:方法主體,包含了完成任務所需的指令集。

 

呼叫方法:

類內部可以使用方法名呼叫方法,類外部必須使用類的例項化物件名.方法名進行呼叫。

 

 

四、建構函式

類的建構函式是類的一個特殊的成員函式,當建立類的新物件時執行。

建構函式的名稱與類的名稱完全相同,它沒有任何返回型別。

預設的建構函式沒有任何引數。

但是如果你需要一個帶有引數的建構函式可以有引數,這種建構函式叫做引數化建構函式。

帶有引數的建構函式可以在建立物件的同時給物件賦初始值。

 

建構函式的定義:

//不帶引數的構造方法

public 類名()

{

//執行程式碼

}

//帶引數的構造方法

public 類名(資料型別 引數1,資料型別 引數2,資料型別 引數3,......,資料型別  引數N)

{

//執行程式碼

}

 

解構函式:

類的解構函式是類的一個特殊的成員函式,當類的物件超出範圍時執行。

解構函式的名稱是在類的名稱前加上一個波浪形(~)作為字首,它不返回值,也不帶任何引數。

解構函式用於在結束程式(比如關閉檔案、釋放記憶體等)之前釋放資源。

解構函式不能繼承或過載。

 

解構函式的定義:

~類名()

{

//執行程式碼

}

五、結構

結構體是值型別資料結構。

它使得一個單一變數可以儲存各種資料型別的相關資料。

struct 關鍵字用於建立結構體。

 

定義結構:

為了定義一個結構,必須使用 struct 語句。

struct 結構名

{

  屬性;

};  

 

使用結構:

結構名   結構變數名;

結構變數名.屬性=屬性值;

 

結構有以下特點:

1.結構可帶有方法、欄位、索引、屬性、運算子方法和事件。

2.結構可定義建構函式,但不能定義解構函式。

但是能為結構定義預設的建構函式。

3.預設的建構函式是自動定義的,且不能被改變。與類不同,結 構不能繼承其他的結構或類。

4.結構不能作為其他結構或類的基礎結構。

5.結構可實現一個或多個介面。

6.結構成員不能指定為 abstractvirtual protected

7.使用 New 操作符建立一個結構物件時,會呼叫適當的構造函 數來建立結構。與類不同,結構可以不使用 New 操作符即 可被例項化。不使用 New 操作符,只有在所有的欄位都被 初始化之後,欄位才被賦值,物件才被使用。

 

類和結構有以下幾個基本的不同點:

1.類是引用型別,結構是值型別。

2.結構不支援繼承。

3.結構不能宣告預設的建構函式。