C 中類的建立

2021-05-27 20:22:13 字數 2190 閱讀 3417

一、類定義

乙個類可以有很多方法和屬性以及字段。感覺我以前經常把類和方法弄混淆,類是後面沒有()的,直接就是像下面的幾段**,簡單的類就ok了,如果想進一步宣告方法的話,在{}裡面宣告;

下面介紹幾種類

<1>

class class1

這樣的類只能在本專案中進行例項化。

<2>

public class class1

這樣的類可以在其他專案中進行例項化進行使用。

<3>

public abstract class class1

abstract 為關鍵字意思為抽象的,該類不能例項化,只能繼承

<4>

public  sealed class class1

sealed為密封的意思,該類不能繼承,只可以派生。可以說和abstract是互斥的關鍵字

<5>

public  class class1:mybase

public class mybase

預設的基類是system.object,所以我們平時會注意到每乙個類的例項都有這幾個方法(equals,gettype,gethashcode,tostring),其實這四個方法就是基類的方法,當乙個類在預設繼承時獲取的方法。

還有個要注意的地方是:派生類的訪問性不能比基類的可訪問性高,但可以一樣高的。如果把mybase的public去掉就會產生錯誤,還有值得注意的是class1只能有乙個父類。但是可以繼承多個介面。如果乙個類既想實現繼承類又想實現繼承介面,那麼要介面放在類後面並用逗號隔開。

二、類成員 (方法、屬性、字段)的定義

在介紹定義之前先說幾個關鍵字public,private,protected,internal這幾個應該是較熟悉的下面再逐個溫習一下

因為所有的類成員都可以有自己的訪問級,所以都可以由上述修飾。

<1>方法的定義和重寫

定義:public override void getstring()

// this's getstring's code

類似上面形式,其中括號裡可能有引數,相對比較簡單。在此不多說。主要說一下方法的重寫

重寫:方法可以被繼承類重寫,主要通過virtual,override來實現的

重寫需注意返回型別和方法的名稱要和基類的一致。

public class baseclass

public void writeclass()

}public class class1:baseclass

}

重寫的乙個好處是乙個方法被重寫了(需要修改的方法重寫了),繼承其他的方法照樣還能用。如上面的例子當需要呼叫class1時候。繼承得到的writeclass方法仍然可以用,但是writestring方法已經在子類中被改了,在父類是沒有改的。在後面的子類中的方法加了乙個sealed,此類可以被繼承(如果是在類的前面加個sealed就不能繼承了),但是類的writestring方法是不能被重寫了,否則是可以重寫的。如果沒有sealed,則下面的寫法就是對的

public class class2 : class1

}

但是如果加上sealed關鍵字就不能重寫了。

<2> 定義屬性

定義乙個屬性非常簡單

public class product

}

這樣一段**就等於定義了乙個類的屬性,就可以呼叫了 product.product_id

但是如果要想把屬性運用的自如,那麼要將其給字段聯絡起來,例子 如果當屬性的值大於10的時候,我想把屬性值取10

那就可以這樣寫

public class product

set//設定屬性的值

}}

主函式**為

public class program 

}

最終輸入結果為10

關於get和set 一定要記住乙個是獲取值(用的時間獲取),set設定屬性的值(使用者提供的時間)

C 中類的建立

一 類定義 乙個類可以有很多方法和屬性以及字段。感覺我以前經常把類和方法弄混淆,類是後面沒有 的,直接就是像下面的幾段 簡單的類就ok了,如果想進一步宣告方法的話,在 裡面宣告 下面介紹幾種類 1 class class1 這樣的類只能在本專案中進行例項化。2 public class class1...

C 中類的建立

一 類定義 乙個類可以有很多方法和屬性以及字段。感覺我以前經常把類和方法弄混淆,類是後面沒有 的,直接就是像下面的幾段 簡單的類就ok了,如果想進一步宣告方法的話,在 裡面宣告 下面介紹幾種類 1 class class1 這樣的類只能在本專案中進行例項化。2 public class class1...

C 類中建立執行緒

經常會遇到需要在類中建立執行緒,可以使用靜態成員函式,並且將類例項的指標傳入執行緒函式的方式來實現。實現 如下 類標頭檔案 ctestthread.h include include includeclass testthread 類原始檔 ctestthread.cpp include ctest...