一、類定義
乙個類可以有很多方法和屬性以及字段。感覺我以前經常把類和方法弄混淆,類是後面沒有()的,直接就是像下面的幾段**,簡單的類就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...