在C中實(shí)現(xiàn)OOP概念_第1頁(yè)
在C中實(shí)現(xiàn)OOP概念_第2頁(yè)
在C中實(shí)現(xiàn)OOP概念_第3頁(yè)
在C中實(shí)現(xiàn)OOP概念_第4頁(yè)
在C中實(shí)現(xiàn)OOP概念_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章第一章在 C# 中實(shí)現(xiàn) OOP 概念23一個(gè)簡(jiǎn)單的windows應(yīng)用程序q設(shè)計(jì)一個(gè)小游戲,要求能通過(guò)上下左右4個(gè)按鈕的點(diǎn)擊動(dòng)作,使得中間的小黑塊能向相應(yīng)的方向移動(dòng)。4回顧qC# 提供以下類型的選擇結(jié)構(gòu):qifqifelseqswitchcaseqC# 提供以下類型的循環(huán)結(jié)構(gòu):qwhile 循環(huán)qdo 循環(huán)qfor 循環(huán)qforeach 循環(huán)5回顧q數(shù)組是可用于將類型相同的多個(gè)數(shù)據(jù)元素存儲(chǔ)為一個(gè)實(shí) 體的數(shù)據(jù)結(jié)構(gòu)6目標(biāo)q理解 C# 的類和對(duì)象q使用 C# 構(gòu)造函數(shù)和析構(gòu)函數(shù)q使用 C# 訪問(wèn)修飾符q使用方法q理解命名空間7對(duì)象屬性型號(hào)價(jià)格里程行為起動(dòng)停車行駛屬性車輪數(shù)量檔的數(shù)量行為加速換檔剎

2、車屬性名稱顏色品種行為搖尾巴吃東西犬 吠 8類q類是 C# 中的一種結(jié)構(gòu),用于在程序中模擬現(xiàn)實(shí)生活的事物語(yǔ)法:訪問(wèn)修飾符 class / 類的主體示例:class Employee / 類的主體/ 成員變量/ 成員方法9語(yǔ)法:語(yǔ)法:成員變量訪問(wèn)修飾符訪問(wèn)修飾符數(shù)據(jù)類型數(shù)據(jù)類型成員變量成員變量;privateprotectedinternalpublic_namestatus.userNameintchar.bool class Employee private string _name;private char _gender;private string _qualification;pri

3、vate uint _salary; 訪問(wèn)成員變量步驟 1:創(chuàng)建一個(gè)類的對(duì)象Employee objEmployee = new Employee();步驟 2:使用點(diǎn)號(hào)訪問(wèn)成員變量objEmployee._name = “張三;objEmployee._name = M;10訪問(wèn)修飾符 2-1Teacher 類private 成員protected 成員public 成員internal 成員Student 類只有 Student 類在 Teacher 類都在同一程序集中,才可訪問(wèn)internal成員不可訪問(wèn)不可訪問(wèn)可以訪問(wèn)11訪問(wèn)修飾符 2-2修飾符修飾符說(shuō)明說(shuō)明public所屬類的成員以

4、及非所屬類的成員都可以訪問(wèn)internal當(dāng)前程序集可以訪問(wèn)private只有所屬類的成員才能訪問(wèn)protected所屬類或派生自所屬類的類型可以訪問(wèn)12構(gòu)造函數(shù) 2-1q 構(gòu)造函數(shù)是類的一種特殊方法,每次創(chuàng)建類的實(shí)例都會(huì)調(diào)用它訪問(wèn)修飾符訪問(wèn)修飾符() / 構(gòu)造函數(shù)的主體語(yǔ)法:語(yǔ)法:/ 默認(rèn)構(gòu)造函數(shù)Employee()_qualification = 研究生;示例:13演示:示例 1構(gòu)造函數(shù) 2-2class Employee private string _name; private char _gender; private string _qualification; private u

5、int _salary; / 默認(rèn)構(gòu)造函數(shù) private Employee() _qualification = “研究生; static void Main(string args) / 調(diào)用默認(rèn)構(gòu)造函數(shù) Employee objEmployee = new Employee(); Console.WriteLine(“資格= + objEmployee._qualification); Console.WriteLine(“薪水= + objEmployee._salary); 14參數(shù)化構(gòu)造函數(shù) 2-1訪問(wèn)修飾符訪問(wèn)修飾符 () / 構(gòu)造函數(shù)的主體構(gòu)造函數(shù)的主體語(yǔ)法:(參數(shù)列表參數(shù)列表

6、)/ 參數(shù)化構(gòu)造函數(shù)Employee(string strQualification) _qualification = strQualification;示例:15參數(shù)化構(gòu)造函數(shù) 2-2/ 默認(rèn)構(gòu)造函數(shù)private Employee() _qualification = “研究生;/ 參數(shù)化構(gòu)造函數(shù)private Employee(string strQualification, string strName, char gender, uint empSalary) _qualification = strQualification; _name = strName; _gender =

7、 gender; _salary = empSalary; public static void Main(string args) / 調(diào)用默認(rèn)構(gòu)造函數(shù) Employee objGraduate = new Employee(); / 調(diào)用參數(shù)化構(gòu)造函數(shù) Employee objMBA = new Employee(“ACCPS3“, ”張亮影“, 男, 5500); Console.WriteLine(“默認(rèn)構(gòu)造函數(shù)輸出: n資格=“ + objGraduate._qualification); Console.WriteLine(“n參數(shù)化構(gòu)造函數(shù)輸出: n資格= +objMBA._qu

8、alification);16析構(gòu)函數(shù)q是用于執(zhí)行清除操作的特殊方法()0 /不能加參數(shù)! / 析構(gòu)函數(shù)的主體 語(yǔ)法:Employee()示例:17方法對(duì)象的行為接聽(tīng)響鈴掛斷PickUp()./用于傳送和接收信號(hào)的代碼Ring()./用于顯示主叫號(hào)碼的代碼Hang()./用于結(jié)束會(huì)話的代碼18聲明方法 2-1語(yǔ)法訪問(wèn)修飾符(可選),默認(rèn)情況下為 private訪問(wèn)修飾符 返回類型 (參數(shù)列表)/ 方法主體如果不需要返回任何值,方法可能返回 void 數(shù)據(jù)類型19聲明方法 2-2.class Pointint x;int y;void Assign()System.Console.WriteLi

9、ne(“輸入點(diǎn)的值);x = int.Parse(System.Console.ReadLine();y = int.Parse(System.Console.ReadLine();.方法 Assign() 的定義 不返回任何值 (void) 不接收任何值 (Assign()Assign( ) 方法20調(diào)用方法 3-1語(yǔ)法對(duì)象名.方法名(參數(shù)列表);實(shí)例類中的方法點(diǎn)號(hào)21演示:示例 3調(diào)用方法 3-2private void Accept() Console.WriteLine(“請(qǐng)輸入實(shí)數(shù)部分); _real = int.Parse(Console.ReadLine(); Console.W

10、riteLine(“請(qǐng)輸入虛數(shù)部分); _imaginary = int.Parse(Console.ReadLine();void ShowResult() Console.WriteLine(“相加之和為:); Console.WriteLine(_real + + + _imaginary + i);/ 此方法用于將兩個(gè)復(fù)數(shù)相加ComplexNumber Add(ComplexNumber objParam1) objParam1._real += _real ; objParam1._imaginary += _imaginary; return objParam1;接收實(shí)部和虛部的值

11、顯示實(shí)部和虛部的值請(qǐng)參閱對(duì)象的實(shí)例變量objParam1 與 objNumber2 相關(guān)聯(lián)STAThreadpublic static void Main(string args) ComplexNumber objNumber1 = new ComplexNumber(); ComplexNumber objNumber2 = new ComplexNumber(); objNumber1.Accept(); objNumber2.Accept(); ComplexNumber objTemp = objNumber1.Add(objNumber2); objTemp.ShowResult(

12、);22調(diào)用方法 3-3語(yǔ)法return 表達(dá)式;return 語(yǔ)句 23方法重載 4-1 消費(fèi)者 1固定電話電移動(dòng)電話帳單管理層供應(yīng)商 1供應(yīng)商 2電信電電話電對(duì)不同的數(shù)據(jù)執(zhí)行相同的任務(wù)24方法重載 4-2Class BillPaymentvoid PayBill(int telephoneNumber)/此方法用于支付固定電話話費(fèi)void PayBill(long consumerNumber)/此方法用于支付電費(fèi)void PayBill(long consumerNumber, double amount)/此方法用于支付移動(dòng)電話話費(fèi)對(duì)不同數(shù)據(jù)執(zhí)行相似的功能25方法重載4-3int gr

13、eatest(int num1, int num2) Console.WriteLine(“0 和 1 相比, 最大的是: , num1, num2); if(num1 num2) return num1; else return num2; int greatest(int num1, int num2, int num3) Console.WriteLine(“0, 1 和 2 相比, 最大的是: , num1, num2, num3); if(num1 num2 & num1 num3) return num1; else if(num2 num1 & num2 num3

14、) return num2; else return num3; 具有不同數(shù)量的參數(shù)的方法重載26方法重載 4-4int greatest(int numbers)int temp = numbers0;for(int i = 1;i numbers.Length;i+)if(temp numbersi)temp = numbersi;return temp;double greatest(double numbers) double temp = numbers0;for(int i = 1;i numbers.Length;i+) if(temp numbersi) temp = numb

15、ersi;return temp;具有不同類型的參數(shù)的方法重載27命名空間 6-1 紐卡斯?fàn)柤~卡斯?fàn)柤~卡斯?fàn)柤~卡斯?fàn)?8命名空間 6-2Class Manager long int salary; . . long int salary; . Class Manager命名空間 AdminDept命名空間 ITDeptAdminDept.ManagerITDept.Manager類庫(kù)29命名空間 6-3Class SamsungTelevisionClass SonyWalkmanClass SonyTelevisionClass SamsungWalkman長(zhǎng)名稱難以維護(hù)namespace

16、Samsung class Television . class WalkMan . Samsung.TelevisionSony.Televisionnamespace Sony class Television . class WalkMan . 有條理,有結(jié)構(gòu)30命名空間 6-4namespace 命名空間的名稱命名空間的名稱 / 該名稱空間的所有類都放在這里。語(yǔ)法31命名空間 6-5namespace Samsung class Monitor public void ListModels() Console.WriteLine(“供應(yīng)以下型號(hào)的顯示器:);Console.WriteL

17、ine(14, 15 n); STAThread static void Main(string args) / / TODO: 在此處添加代碼以啟動(dòng)應(yīng)用程序 / 32命名空間 6-6namespace Sony public class Monitor public void ListModelStocks() Console.WriteLine(“以下是 Sony 顯示器的規(guī)格及其庫(kù)存量:); Console.WriteLine(14=1000, 15=2000, 17=3000);static void Main(string args)Samsung.Monitor objSamsung = new Samsung.Monitor

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論