C#中類的使用教程詳解
在對(duì)類訪問使用時(shí),常用到的有訪問類的成員、方法。
實(shí)例化
在對(duì)類進(jìn)行訪問時(shí),需要將類進(jìn)行實(shí)例化。并產(chǎn)生一個(gè)對(duì)象??梢允褂藐P(guān)鍵字new來實(shí)現(xiàn)。
由于類是引用類型,創(chuàng)建類的實(shí)例后,在棧分配對(duì)象的引用地址,指向堆內(nèi)存,存儲(chǔ)對(duì)象的值。
雖然對(duì)象的實(shí)例字段是值類型,也是在堆上創(chuàng)建存儲(chǔ)空間存儲(chǔ)的,棧上對(duì)象指向堆存儲(chǔ)的變量。
類名 對(duì)象名 = new 類名();
類名。指類的名字,比如書本、汽車等
對(duì)象名。指實(shí)例化類后的對(duì)象名字,比如實(shí)例化汽車類后,創(chuàng)建一個(gè)具體的對(duì)象。可以是奔馳汽車,寶馬汽車等。
類成員
訪問
在對(duì)類進(jìn)行實(shí)例化后,調(diào)用對(duì)象的名
對(duì)象名.類的成員
//創(chuàng)建Book類
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)建類的靜態(tài)成員
public void PrintMsg()//不返回?cái)?shù)值,使用void
{
Console.WriteLine("圖書編號(hào):"+Id);
Console.WriteLine("圖書名稱:"+Name);
Console.WriteLine("圖書價(jià)格:"+Price);
}
}
//在項(xiàng)目主程序調(diào)用Book類。
class Program
{
static void Main(string[] args)
{
Book.Author = "SomeBody" //訪問類靜態(tài)成員時(shí),不需要實(shí)例化對(duì)象,可直接訪問
Book bk = new Book();//Book屬于類,bk屬于對(duì)象名
//為bk對(duì)象的屬性賦值
bk.Id = 1;
bk.Name = "論演員的自我修養(yǎng)";
bk.Price = 6.66;
bk.PrinfMsg();
}
}
賦值
為對(duì)象屬性賦值時(shí),可通過類內(nèi)部的構(gòu)造方法,如果類內(nèi)部沒有構(gòu)造方法,可通過直接賦值。
直接賦值型
根據(jù)上面的例子,當(dāng)類中沒有構(gòu)造方法,并且字段修飾符為public,可通過實(shí)例化對(duì)象訪問類的成員,并對(duì)其賦值。
代碼案例參考類成員訪問。
構(gòu)造方法型
在使用構(gòu)造方法前,先簡(jiǎn)單介紹下構(gòu)造方法。
語法規(guī)則
訪問修飾符 類名 (參數(shù)列表)
{
語句塊;
}
沒有返回值,可以帶參數(shù),也可不帶參數(shù)
聲明類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù),在構(gòu)造函數(shù)中不要對(duì)類的實(shí)例進(jìn)行初始化以外的事情,也不能被顯式地調(diào)用。
構(gòu)造函數(shù)可以重載, 從而提供初始化類對(duì)象的不同方法
靜態(tài)構(gòu)造函數(shù),用static修飾,用于初始化靜態(tài)變量,一個(gè)類只允有一個(gè)構(gòu)造函數(shù)
構(gòu)造函數(shù)可以使用public、protected、private修飾符,一般常用public,方便對(duì)類成員賦值或重載等
如果將訪問修飾符設(shè)置成private類型的,則無法創(chuàng)建該類的對(duì)象。
構(gòu)造方法的名稱必須是類名
class User
{
//創(chuàng)建構(gòu)造函數(shù),作為類的輸入項(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("用戶名:"+this.Name);
Console.WriteLine("用戶名:"+this.Password);
Console.WriteLine("用戶名:"+this.Tel);
}
}
//在Main方法中實(shí)例化user類對(duì)象,并調(diào)用其方法
class Program
{
static void Main(string[] args)
{
//實(shí)例化user類,創(chuàng)建對(duì)象,根據(jù)類的構(gòu)造函數(shù),傳入三個(gè)參數(shù)。
User user = new User("小明",123,17726531990);
user.PrintMsg();
}
}
方法
指類中創(chuàng)建的方法,其實(shí)上面說的構(gòu)造函數(shù)也是方法。
方法調(diào)用
實(shí)例化對(duì)象,然后直接調(diào)用方法,調(diào)用時(shí)需要注意方法是否有傳入?yún)?shù)和返回值。
//創(chuàng)建類
Class SumUtils
{
public int Sum(int a,int b)
{
return a + b;
}
public Sayhi()
{
Console.WriteLine("Hello World");
}
}
//實(shí)例化類,并調(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#中,可以在同一類定義多個(gè)方法名相同,參數(shù)列表(參數(shù)類型、參數(shù)個(gè)數(shù))不同的方法,這種形式就是方法重載,調(diào)用此類方法時(shí),系統(tǒng)會(huì)根據(jù)實(shí)際傳入?yún)?shù),選擇與其匹配的方法執(zhí)行。
//創(chuàng)建計(jì)算器類,完成求和
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#中類的使用教程詳解的文章就介紹到這了,更多相關(guān)C# 類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法
這篇文章主要介紹了C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法,本文通過正則實(shí)現(xiàn)統(tǒng)計(jì)出一段字符串里中文字?jǐn)?shù),需要的朋友可以參考下2014-08-08
如何使用LinQ To Object把數(shù)組或DataTable中的數(shù)據(jù)進(jìn)行向上匯總
這篇文章主要介紹了如何使用LinQ To Object把數(shù)組或DataTable中的數(shù)據(jù)進(jìn)行向上匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Win10 系統(tǒng)下VisualStudio2019 配置點(diǎn)云庫(kù) PCL1.11.0的圖文教程
這篇文章主要介紹了Win10 系統(tǒng)下VisualStudio2019 配置點(diǎn)云庫(kù) PCL1.11.0的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn)
本文主要介紹了C#以太網(wǎng)Sockets客戶端設(shè)計(jì)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

