![[計算機軟件及應用]C入門課程Csharp入門課程類的屬性ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d40/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d401.gif)
![[計算機軟件及應用]C入門課程Csharp入門課程類的屬性ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d40/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d402.gif)
![[計算機軟件及應用]C入門課程Csharp入門課程類的屬性ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d40/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d403.gif)
![[計算機軟件及應用]C入門課程Csharp入門課程類的屬性ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d40/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d404.gif)
![[計算機軟件及應用]C入門課程Csharp入門課程類的屬性ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/7/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d40/8413bfb0-5ef3-4e20-8e31-6fc9e5a07d405.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、回想與作業(yè)點評 找出下面代碼中的錯誤int array = new int4 0,1,2,3,4 ;foreach( int arryItem in array) Console.WriteLine(arryItem ); 位置錯誤位置錯誤int array= new int5 0,1,2,3,4 ;foreach( int arryItem in array) Console.WriteLine(arryItem );數(shù)組長度錯數(shù)組長度錯誤誤變量類型變量類型錯誤錯誤回想 類和對象的區(qū)別是什么?public class &Student string name; char sex; i
2、nt age; public string tostring() return name + t + sex + t + age; public static void Main(string args) Student stu = new Student(); name = 神仙姐姐神仙姐姐; sex = F; age = 18; Console.WriteLine(stu); Student stu.sexstu.age 實現(xiàn)輸出學生信息,下面代碼有哪些錯誤?回想 結(jié)合上期的知識,小汽車、飛馳汽車和樓下那輛飛馳S500汽車。哪個是類,哪個是對象? 聲明一個方法不需求前往值的
3、關(guān)鍵字是什么?預習檢查 創(chuàng)建屬性經(jīng)過哪兩個訪問器?本章義務 運用屬性封裝年齡字段 運用屬性封裝身份證字段 運用屬性封裝MyBank字段 實現(xiàn)計算一組數(shù)的奇偶個數(shù)本章目的 掌握C#中的訪問修飾符 掌握C#中的屬性生活中的訪問級別什么是訪問級別?什么是訪問級別?C# 中的訪問修飾符private某些敏感字段只希望在類內(nèi)部運用怎樣辦?某些敏感字段只希望在類內(nèi)部運用怎樣辦? public class Employee public double pay = 3000; public void ShowPay() Console.WriteLine(您的工資等級是:您的工資等級是:0 , payLeve
4、l); Console.ReadLine(); 不被其它類運不被其它類運用用private double pay = 3000;演示例如演示例如1 1:訪問學生信息:訪問學生信息私有成員私有成員 公有成員公有成員 例如1代碼分析 關(guān)鍵代碼回想 :public class Student /姓名姓名 private string _name = 王麗麗王麗麗; 定義成定義成private的字段,其的字段,其他類訪問不到他類訪問不到class Program static void Main(string args) Student stu = new Student(); stu._name =
5、 Lili; 強迫訪問強迫訪問無法訪問編譯錯無法訪問編譯錯誤誤 C# 中的訪問修飾符 C#中的訪問修飾符 :訪問修飾符訪問修飾符訪問權(quán)限訪問權(quán)限訪問級別訪問級別public不受不受任何任何限制限制最最高高private只有只有類的內(nèi)部類的內(nèi)部可以使用可以使用最最低低訪問修飾符 2-1Teacher 類private 成員protected 成員public 成員internal 成員Student 類只需 Student 類在 Teacher 類都在同一程序集中,才可訪問internal成員不可訪問不可訪問可以訪問訪問修飾符 2-2修飾符修飾符說明說明public所屬類的成員以及非所屬類的成員
6、都可以訪問internal當前程序集可以訪問private只有所屬類的成員才能訪問protected所屬類或派生自所屬類的類型可以訪問公有成員和私有成員class student private string name;/姓名姓名 public int age; /年齡年齡 public string idNumber ;/身份證號身份證號static void Main(string args) student myStudent = new student(); myS = 張三張三; myStudent.age = 20; 私有成員私有成員 公有成員公有成員 實例化
7、一個對象實例化一個對象 可以訪問可以訪問 演示例如演示例如1 1:訪問修飾符:訪問修飾符 無法訪問編譯錯無法訪問編譯錯誤誤 數(shù)據(jù)平安static void Main(string args) student myStudent = new student(); myStudent.age = -2; myStudent.idNumber = 123456; 非法數(shù)據(jù)非法數(shù)據(jù) 身份證號不能被修正身份證號不能被修正 無法獲得數(shù)據(jù)無法獲得數(shù)據(jù) 無法正常賦值無法正常賦值 有時候?qū)㈩愔杏袝r候?qū)㈩愔械淖侄喂_是的字段公開是不平安的不平安的假設(shè)設(shè)為私有成員假設(shè)設(shè)為私有成員能否對這些字段進展規(guī)那么約束或者只讀
8、呢?能否對這些字段進展規(guī)那么約束或者只讀呢? 能否對能否對_age設(shè)成可讀且只能賦值為設(shè)成可讀且只能賦值為1100呢呢?運用方法處理數(shù)據(jù)平安問題private int _age; public int 方法方法1( ) return this._age;public void 方法方法2(int 參數(shù)參數(shù)) if (參數(shù)參數(shù) 100) this._age = 18; else this._age = 參數(shù)參數(shù); 1、運用者不可直接操作、運用者不可直接操作_age2、用方法前往、用方法前往_age供讀取供讀取3、用方法限制運用者的非法賦值、用方法限制運用者的非法賦值 演示例如演示例如3 3:運用
9、方法限制對字段的讀?。哼\用方法限制對字段的讀取什么是屬性2-1private int _age; public int Age get return _age; set if (value 100) _age = value; else _age = 18; 經(jīng)過公有經(jīng)過公有Age訪問和約束私有字段訪問和約束私有字段_age字段字段屬性屬性相當于方法的參數(shù)相當于方法的參數(shù)前往前往_age 給給_age賦值賦值 經(jīng)過經(jīng)過get和和set訪問訪問 什么是屬性2-2class Student private string name; public string Name get return nam
10、e; set name = value; get用于獲取用于獲取相應字段的值相應字段的值set用于設(shè)置用于設(shè)置字段的值字段的值只需只需get時時:只讀屬性只讀屬性只需只需set時時:只寫屬性只寫屬性get和和set都存在都存在:讀寫屬性讀寫屬性可以是任何數(shù)據(jù)類型,可以是任何數(shù)據(jù)類型,但類型必需一致但類型必需一致屬性的運用myStudent.Age = -20;/輸出輸出myStudent.Age = 40;/輸出輸出沒有訪問沒有訪問age 錄入非法數(shù)據(jù)錄入非法數(shù)據(jù)輸出輸出myStudent.Age演示例如演示例如4 4:用屬性限制對字段的讀取:用屬性限制對字段的讀取屬性的作用private i
11、nt _age; public int Age get return _age; set if (value 100) _age = 18; else _age = value; 控制私有字段的可訪問性控制私有字段的可訪問性 維護內(nèi)部數(shù)據(jù)的平安維護內(nèi)部數(shù)據(jù)的平安 建議:類內(nèi)部敏感字段運用建議:類內(nèi)部敏感字段運用屬性來控制訪問屬性來控制訪問封裝字段將類中的字段、屬性綁到一同封裝字段封裝字段防止非法數(shù)據(jù)的訪問防止非法數(shù)據(jù)的訪問保證數(shù)據(jù)的完好性保證數(shù)據(jù)的完好性操作演示:在操作演示:在VSVS中運用重構(gòu)中運用重構(gòu)封裝字段封裝字段 封裝是面向?qū)ο蟮娜筇匦灾环庋b是面向?qū)ο蟮娜筇匦灾活惖某蓡T類的成員
12、類的成員與類的關(guān)系與類的關(guān)系示例(手機類)示例(手機類)字段字段類中的類中的數(shù)據(jù)數(shù)據(jù)手機的手機的SIM卡卡屬性屬性類的類的狀態(tài)狀態(tài)手機的顏色、型號手機的顏色、型號方法方法類的類的行為行為顯示短信,播放音樂鈴聲顯示短信,播放音樂鈴聲我們學習了哪些類的成員?我們學習了哪些類的成員?小結(jié)參考答案參考答案運用屬性封裝身份證號字段并運用輸出語句運用屬性封裝身份證號字段并運用輸出語句測試測試身份證號必需為身份證號必需為18位;否那么重置為位;否那么重置為 “0000-0000-0000-0000-00練習運用屬性封裝MyBank字段 需求闡明: 運用屬性封裝User里的一切字段 User成員字段:賬戶名,
13、密碼,身份證號,賬戶余額,賬號 行為方法:取款操作,存款完成時間:完成時間:10分鐘分鐘運用屬性 屬性與字段、變量一樣,用于表達式中,進展取值或賦值。例如: Console.WriteLine(已創(chuàng)建半徑為 + aCircle.Radius + 的圓); Console.WriteLine(目前圓對象個數(shù)為: + Circle.NumCircles); 在所在類的外部運用屬性,也要加上前綴。 實例屬性,要用對象名作前綴,例如 aCircle.Radius; 靜態(tài)屬性,要加上類名作前綴,例如 Circle.NumCircles。 在所在類的內(nèi)部運用屬性,可以不加前綴,也可以加上前綴。 讀取屬性值
14、時,程序執(zhí)行屬性get訪問器中的代碼。 屬性賦值時,程序執(zhí)行屬性set訪問器中的代碼,所賦的新值自動傳給內(nèi)建的value參數(shù)。 屬性的局限 1除了get、set訪問器之外,屬性不能包含其他并列的代碼塊。 2除了set訪問器內(nèi)建的value參數(shù),get、set訪問器不能獲取別的參數(shù)。 3不能聲明const屬性。 4不能將屬性作為一個ref或out參數(shù),但字段可以。自動實現(xiàn)屬性 系統(tǒng)提供了自動生成屬性set和get訪問器代碼塊的機制。 自動實現(xiàn)屬性的普通方式: 訪問修飾符 可選static 類型 屬性名 get; set; 自動實現(xiàn)的屬性必需同時聲明get和set訪問器。假設(shè)要創(chuàng)建只讀的自動實現(xiàn)屬
15、性,那么可聲明private的set訪問器。 【例】建立控制臺運用程序工程,編寫能自動實現(xiàn)屬性的矩形類,計算矩形面積和周長,統(tǒng)計矩形對象個數(shù)。 class Rectangle /自定義矩形類 . public double Length get; set; public double Width get; set; public static int NumRectangles get; private set; . 在Program類中編寫Main方法代碼: string inputString; double length, width, area, girth; while (true)
16、 Console.Write(請輸入矩形的長度(直接按回車鍵退出程序):); inputString = Console.ReadLine(); if (inputString = ) break; else . Rectangle aRectangle = new Rectangle(length, width); . Console.WriteLine(已創(chuàng)建矩形對象個數(shù): + Rectangle.NumRectangles); . 自動實現(xiàn)的屬性 自動實現(xiàn)的屬性,編譯時自動生成了對應的私有字段及訪問器代碼。 例如例7-6的矩形長度屬性: public double Length get;
17、 set; 編譯時系統(tǒng)在類Rectangle內(nèi)部自動生成了如下代碼: private double _length; public double Length get return _length; set _length = value; 自動實現(xiàn)的屬性,由系統(tǒng)生成的訪問器代碼塊語句是很簡單的,不能夠包含復雜的邏輯功能。 【例7-7】建立控制臺運用程序工程,編寫在長度和寬度屬性中限制出現(xiàn)負數(shù)的矩形類,. 修正例7-6工程中的矩形類Rectangle,部分代碼如下: private double _length, _width; /私有的矩形長度、寬度字段 public double Leng
18、th /長度屬性 get return _length; set if (value 0) throw new Exception(矩形的長度不能為負數(shù)!); else _length = value; public Rectangle(double length, double width) /構(gòu)造函數(shù) Length = length; Width = width; NumRectangles+; 小結(jié) 編寫MySchool中的Student類 包含的屬性 年齡0-100不符合的設(shè)為18 姓名只讀屬性 喜好讀寫 給屬性賦值并打印出來this關(guān)鍵字的作用 C#中this關(guān)鍵字有什么作用?演示例如演示例如2 2:用:用thisthis獲得當前對象獲得當前對象private string name; /姓名姓名public void SetName(string name) this. name = name;名字一樣名字一樣this調(diào)用的是調(diào)用的是成員變量成員變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)美工藝面試題及答案
- 春節(jié)對聯(lián)試題及答案
- 天文競賽試題及答案
- 圖形測試題面試題及答案
- 物理氣體試題及答案
- 無機化學考試試題及答案
- vte相關(guān)護理試題及答案
- 臨檢檢驗考試題及答案
- 2025年動物醫(yī)學專業(yè)畢業(yè)設(shè)計開題報告
- 2025年安全生產(chǎn)監(jiān)管專業(yè)畢業(yè)設(shè)計開題報告
- 2024-2029年中國月餅行業(yè)發(fā)展分析及發(fā)展前景與投資研究報告
- GB 5009.191-2024食品安全國家標準食品中氯丙醇及其脂肪酸酯、縮水甘油酯的測定
- 太原武宿機場三期改擴建工程水土保持方案
- 中國郵政-招聘考試試題及答案-總括版
- 護士醫(yī)德醫(yī)風培訓課件
- 國家級省級化工園區(qū)列表
- 子宮內(nèi)膜異位癥課件
- 跨文化教育與全球公民教育的融合研究
- 坐標紙(A4紙直接打印就可用)
- 高壓蒸汽滅菌生物指示劑原始記錄
- 水處理設(shè)備供貨整體技術(shù)服務方案
評論
0/150
提交評論