1.靜態方法和例項方法
用修飾符static 宣告的方法為靜態方法,不用修飾符static 宣告的方法為例項方法。不管類生成或未生成物件,類的靜態方法都可以被使用,使用格式為:類名.靜態方法名。靜態方法只能使用該靜態方法所在類的靜態資料成員和靜態方法。這是因為使用靜態方法時,該靜態方法所在類可能還沒有物件,即使有物件,由於用類名.靜態方法名方式呼叫靜態方法,靜態方法沒有this 指標來存放物件的位址,無法判定應訪問哪個物件的資料成員。在類建立物件後,例項方法才能被使用,使用格式為:物件名.例項方法名。例項方法可以使用該方法所在類的所有靜態成員和例項成員。例子如下:
using system;
public class usemethod
public void nostaticmethod()//例項方法
}public class class1
}2.方法的過載
在c#語言中,如果在同乙個類中定義的函式名相同,而引數型別或引數個數不同,認為是不相同的函式,僅返回值不同,不能看作不同函式,這叫做函式的過載。前邊person類中定義了多個建構函式就是過載的例子。在c 語言中,若計算乙個資料的絕對值,則需要對不同資料型別求絕對值方法使用不同的方法名,如用abc()求整型數絕對值,labs()求長整型數絕對值,fabs()求浮點數絕對值。而在c#語言中,可以使用函式過載特性,對這三個函式定義同樣的函式名,但使用不同的引數型別。下面是實現方法:
using system;
public class useabs
public long abs(long x)//長整型數求絕對值
public double abs(double x)//浮點數求絕對值
}class class1
,y=,z=",x,y,z);}}
類的物件呼叫這些同名方法,在編譯時,根據呼叫方法的實參型別決定呼叫那個同名方法,計算不同型別資料的絕對值。這給程式設計提供了極大方便。
3.操作符過載
操作符過載是將c#語言中的已有操作符賦予新的功能,但與該操作符的本來含義不衝突,使用時只需根據操作符出現的位置來判別其具體執行哪一種運算。操作符過載,實際是定義了乙個操作符函式,操作符函式宣告的格式如下:static public 函式返回型別operator 重新定義的操作符(形參表) c#語言中有一些操作符是可以過載的,例如:+ - ! ~ ++ -- true false * / % & | ^<< >> == != > < >= <=等等。但也有一些操作符是不允許進行過載的,例如:=, &&, ||, ?:,new, typeof, sizeof, is等。下邊的例子,定義乙個複數類,並且希望複數的加減乘除用符號+,-.*,/來表示。
using system;
class complex//複數類定義
static public complex operator - (complex a)//過載一元操作符負號,注意1個引數
static public complex operator +(complex a,complex b)//過載二元操作符加號
public void display()
+()j",real,imag);}
}class class1
}
C 學習筆記 4
17 函式呼叫方式 stdcall 表示指定這個函式採用 stdcall 方式。這種呼叫方式有如下特徵 1 呼叫時,引數從右到左壓入堆疊。2 被呼叫的函式負責清除堆疊。3 編譯時函式名前加 在函式名後加 paralength 其中 paralength 為所有引數以位元組為單位的長度。如果不指定函式...
c 學習筆記4
toc 主要內容為以下兩部分 1.布林資料型別 2.列表初始化 部分 這個資料型別在不同語言裡面的表現方式是不一樣的,尤其在c語言和c 裡布林資料型別表現方式有很大區別。布林表示式 布林表示式的本質是一段 其結果為 真 true 或者 假 false 我們可以通過關係運算得到布林值,關係運算 rel...
c 網路程式設計學習筆記 4
chapter 3.併發設計空間 一 迴圈 併發及反應式伺服器 迴圈伺服器在處理後續請求之前,會完整地處理每乙個客戶請求。因此,在處理乙個請求時,迴圈伺服器要麼將其他請求排成佇列,要麼忽略它們。迴圈伺服器適合以下兩種服務 l短期服務 l不經常執行的服務 在內部,迴圈伺服器常常在 單程序 位址空間中執...