C#中類(lèi)的使用教程詳解
在對(duì)類(lèi)訪(fǎng)問(wèn)使用時(shí),常用到的有訪(fǎng)問(wèn)類(lèi)的成員、方法。
實(shí)例化
在對(duì)類(lèi)進(jìn)行訪(fǎng)問(wèn)時(shí),需要將類(lèi)進(jìn)行實(shí)例化。并產(chǎn)生一個(gè)對(duì)象??梢允褂藐P(guān)鍵字new來(lái)實(shí)現(xiàn)。
由于類(lèi)是引用類(lèi)型,創(chuàng)建類(lèi)的實(shí)例后,在棧分配對(duì)象的引用地址,指向堆內(nèi)存,存儲(chǔ)對(duì)象的值。
雖然對(duì)象的實(shí)例字段是值類(lèi)型,也是在堆上創(chuàng)建存儲(chǔ)空間存儲(chǔ)的,棧上對(duì)象指向堆存儲(chǔ)的變量。
類(lèi)名 對(duì)象名 = new 類(lèi)名();
類(lèi)名。指類(lèi)的名字,比如書(shū)本、汽車(chē)等
對(duì)象名。指實(shí)例化類(lèi)后的對(duì)象名字,比如實(shí)例化汽車(chē)類(lèi)后,創(chuàng)建一個(gè)具體的對(duì)象??梢允潜捡Y汽車(chē),寶馬汽車(chē)等。
類(lèi)成員
訪(fǎng)問(wèn)
在對(duì)類(lèi)進(jìn)行實(shí)例化后,調(diào)用對(duì)象的名
對(duì)象名.類(lèi)的成員
//創(chuàng)建Book類(lèi) class Book { public int Id{get;set;} public string Name{get;set;} public double Price{get;set;} public static string Author{get;set;}//創(chuàng)建類(lèi)的靜態(tài)成員 public void PrintMsg()//不返回?cái)?shù)值,使用void { Console.WriteLine("圖書(shū)編號(hào):"+Id); Console.WriteLine("圖書(shū)名稱(chēng):"+Name); Console.WriteLine("圖書(shū)價(jià)格:"+Price); } } //在項(xiàng)目主程序調(diào)用Book類(lèi)。 class Program { static void Main(string[] args) { Book.Author = "SomeBody" //訪(fǎng)問(wèn)類(lèi)靜態(tài)成員時(shí),不需要實(shí)例化對(duì)象,可直接訪(fǎng)問(wèn) Book bk = new Book();//Book屬于類(lèi),bk屬于對(duì)象名 //為bk對(duì)象的屬性賦值 bk.Id = 1; bk.Name = "論演員的自我修養(yǎng)"; bk.Price = 6.66; bk.PrinfMsg(); } }
賦值
為對(duì)象屬性賦值時(shí),可通過(guò)類(lèi)內(nèi)部的構(gòu)造方法,如果類(lèi)內(nèi)部沒(méi)有構(gòu)造方法,可通過(guò)直接賦值。
直接賦值型
根據(jù)上面的例子,當(dāng)類(lèi)中沒(méi)有構(gòu)造方法,并且字段修飾符為public,可通過(guò)實(shí)例化對(duì)象訪(fǎng)問(wèn)類(lèi)的成員,并對(duì)其賦值。
代碼案例參考類(lèi)成員訪(fǎng)問(wèn)。
構(gòu)造方法型
在使用構(gòu)造方法前,先簡(jiǎn)單介紹下構(gòu)造方法。
語(yǔ)法規(guī)則
訪(fǎng)問(wèn)修飾符 類(lèi)名 (參數(shù)列表)
{
語(yǔ)句塊;
}
沒(méi)有返回值,可以帶參數(shù),也可不帶參數(shù)
聲明類(lèi)對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù),在構(gòu)造函數(shù)中不要對(duì)類(lèi)的實(shí)例進(jìn)行初始化以外的事情,也不能被顯式地調(diào)用。
構(gòu)造函數(shù)可以重載, 從而提供初始化類(lèi)對(duì)象的不同方法
靜態(tài)構(gòu)造函數(shù),用static修飾,用于初始化靜態(tài)變量,一個(gè)類(lèi)只允有一個(gè)構(gòu)造函數(shù)
構(gòu)造函數(shù)可以使用public、protected、private修飾符,一般常用public,方便對(duì)類(lèi)成員賦值或重載等
如果將訪(fǎng)問(wèn)修飾符設(shè)置成private類(lèi)型的,則無(wú)法創(chuàng)建該類(lèi)的對(duì)象。
構(gòu)造方法的名稱(chēng)必須是類(lèi)名
class User { //創(chuàng)建構(gòu)造函數(shù),作為類(lèi)的輸入項(xiàng),用于內(nèi)部方法的調(diào)用。 public User(string name,string password,string tel) { this.Name = name; this.Password = password; this.Tel = tel; } public string Name {get;set;} public string Password{get;set;} public string Tel{get;set;} public void PrintMsg() { //this Console.WriteLine("用戶(hù)名:"+this.Name); Console.WriteLine("用戶(hù)名:"+this.Password); Console.WriteLine("用戶(hù)名:"+this.Tel); } } //在Main方法中實(shí)例化user類(lèi)對(duì)象,并調(diào)用其方法 class Program { static void Main(string[] args) { //實(shí)例化user類(lèi),創(chuàng)建對(duì)象,根據(jù)類(lèi)的構(gòu)造函數(shù),傳入三個(gè)參數(shù)。 User user = new User("小明",123,17726531990); user.PrintMsg(); } }
方法
指類(lèi)中創(chuàng)建的方法,其實(shí)上面說(shuō)的構(gòu)造函數(shù)也是方法。
方法調(diào)用
實(shí)例化對(duì)象,然后直接調(diào)用方法,調(diào)用時(shí)需要注意方法是否有傳入?yún)?shù)和返回值。
//創(chuàng)建類(lèi) Class SumUtils { public int Sum(int a,int b) { return a + b; } public Sayhi() { Console.WriteLine("Hello World"); } } //實(shí)例化類(lèi),并調(diào)用相關(guān)方法。 class Program { static void Main(string[] args) { //實(shí)例化對(duì)象 SumUtils s = new SumUtils(); //調(diào)用求兩個(gè)整數(shù)和的方法 Console.WriteLine("兩個(gè)整數(shù)和為{0}",s.Sum(3,6)); //打招呼 s.Sayhi(); }; }
方法重載
在對(duì)方法調(diào)用時(shí),需要注意方法重載。在C#中,可以在同一類(lèi)定義多個(gè)方法名相同,參數(shù)列表(參數(shù)類(lèi)型、參數(shù)個(gè)數(shù))不同的方法,這種形式就是方法重載,調(diào)用此類(lèi)方法時(shí),系統(tǒng)會(huì)根據(jù)實(shí)際傳入?yún)?shù),選擇與其匹配的方法執(zhí)行。
//創(chuàng)建計(jì)算器類(lèi),完成求和 class Counter { //求兩個(gè)整數(shù)和 public int Sum(int a,int b) { return a+b; } //求階乘 pubic int Sum(int a) { int sum = 0; for(int i=1;i<a;i++) { sum *= i; } } } //在Main方法中調(diào)用 class Program { static void Main(string[] args) { Counter c = new Counter(); Console.WriteLine("整數(shù)和為:"+c.Sum(3,5)); Console.WriteLine("階乘為:"+c.Sum(5)); } }
到此這篇關(guān)于C#中類(lèi)的使用教程詳解的文章就介紹到這了,更多相關(guān)C# 類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#調(diào)用Python程序傳參數(shù)獲得返回值
C# 調(diào)用 Python 程序有多種方式,本文主要介紹了4種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02詳解C#方法中使用out參數(shù)做登錄判斷代碼實(shí)例
這篇文章主要介紹了C#使用out參數(shù)做登錄判斷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04WPF實(shí)現(xiàn)動(dòng)畫(huà)效果(五)之關(guān)鍵幀動(dòng)畫(huà)
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果之關(guān)鍵幀動(dòng)畫(huà),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06基于C#實(shí)現(xiàn)圖片滑動(dòng)驗(yàn)證碼的示例代碼
這篇文章主要為大家介紹了如何利用C#語(yǔ)言制作一個(gè)圖片滑動(dòng)驗(yàn)證碼,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04WinForm導(dǎo)出文件為Word、Excel、文本文件的方法
這篇文章主要介紹了WinForm導(dǎo)出文件為Word、Excel、文本文件的方法,本文直接給出實(shí)現(xiàn)代碼,代碼中包含相應(yīng)注釋,需要的朋友可以參考下2015-03-03