




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C#程序設計
第3章C#面向對象編程2基本內容屬性索引器方法的參數小結3本節(jié)目標理解面向對象的基本概念理解類和對象的區(qū)別和聯(lián)系掌握屬性的使用區(qū)別只讀屬性和可讀寫屬性掌握方法的聲明和使用4數據安全staticvoidMain(string[]args){StudentmyStudent=newStudent();myStudent.age=-2;myStudent.id="123456";
}非法數據身份證號不能被修改無法獲得數據無法正常賦值有時候將類中的字段公開是不安全的如果設為私有成員能否對這些字段進行規(guī)則約束或者只讀呢?5什么是屬性(property)C#不直接訪問類的數據通過訪問器訪問(get,set)classStudent{//姓名
privatestringname;publicstringName{get{returnname;}set{name=value;}}}返回nameget用于獲取相應字段的值set用于設置字段的值只有get時:只讀屬性只有set時:只寫屬性get和set都存在:讀寫屬性屬性的類型和字段類型必須一致。給name賦值[屬性修飾符]
類型屬性名{get{return字段名;}set{字段名
=value;}}6屬性的特點privateintage;//年齡publicintAge{get{returnage;}set
{
if(value>0&&value<100){
age=value;}else{
age=18;}}}控制私有字段的可訪問性保護內部數據的安全建議類內部敏感字段使用屬性來控制訪問類型可以是各種數據類型,如:對象、數組等等7在類中使用屬性privateintage;//年齡publicintAge{get{returnage;}set
{
if(value>0&&value<100){
age=value;}else{
age=18;}}}myStudent.Age=-20;…//打印myStudent.Age=40;…//打印沒有訪問age公開Age錄入非法數據打印私有變量age演示示例:MyAttribute
不公開age通過公有Age訪問和約束私有字段age8屬性注意事項屬性可以被聲明為public,private,protected,internal,orprotectedinternal同一屬性的get和set可以有不同的訪問限制不能同時為get、set指定訪問修飾符。get或set的訪問修飾符可以和屬性不同,但必須是比屬性有更高的限制9自動實現的屬性自動實現的屬性聲明的基本形式如下:[屬性修飾符]類型屬性名{get;set;}[;]編譯器將創(chuàng)建一個私有的匿名后備字段,該字段只能通過屬性的get和set訪問器進行訪問必須同時定義get和set訪問器如果想只讀訪問該屬性,則將set訪問器設置為private10基本內容屬性索引器方法的參數小結11索引器的聲明和訪問定義格式:
[修飾符]<類型名>this[下標索引]{get;set;}類、字符串等整數或字符串索引器(indexer)允許class、struct的實例像數組一樣進行索引與屬性類似,又被稱為帶參數的屬性便于訪問對象中封裝的內部集合或數組索引器的訪問方式:對象[索引參數]和屬性具有相同的訪問修飾符不能使用ref或out關鍵字修飾12練習編寫一個程序,用于接受四年制大學生每年的GPA(GradePointAverage,年級平均成績),計算GPA平均值,并顯示該值。Student類定義一個數組,用于存放每年的GPA值要存儲和檢索每年的GPA值,可以使用索引器年級可以用作索引器的索引13publicclassStudent{
//四年的成績privateint[]score=newscore[4];
publicintthis[intindex]{get{returnthis.score[index];}set{this.score[index]=value;}}}classTest{staticvoidMain(string[]args){
Studentst1=newStudent();
st1[0]=90;
Console.WriteLine("第1年成績:"+st1[0]);}14索引器的聲明和訪問索引與屬性的比較:與屬性一樣是類的函數成員,而不是數據成員名稱固定為關鍵字this,且必須指定索引的參數表必須為實例成員get訪問器具有和索引器一樣的形參表set存取器也有一個value參數訪問方式與數組類似,使用[]訪問元素什么情況下使用索引器?適合于具有序列性質的數據類型,并要在類型中聲明一個可以存儲序列數組的字段。15基本內容屬性索引器方法的參數小結16方法的聲明和調用方法的聲明:[方法修飾符]
返回值類型方法名(
[形參列表]
){方法體}方法的調用方法類似于字段的訪問:對象.方法名([實參列表]);return語句返回類型不是void,必須使用return返回類型為void可以沒有return,執(zhí)行代碼末尾也通過return選擇出口,但不能加表達式方法:也叫函數,表示類的行為。17方法的參數類型方法的聲明可以包含一個[形參列表]方法調用時則通過傳遞[實參列表]方法體中不能定義同名的局部變量有四種類型的參數值形參(valueparameter),聲明時不帶任何修飾符引用形參(referenceparameter),用ref
修飾符聲明輸出形參(outputparameter),用out
修飾符聲明形參數組(parameterarray),用params
修飾符聲明181.值形參聲明時不帶修飾符的形參是值形參,用于輸入參數的傳遞值形參對應于方法聲明空間的局部變量,其初始值為方法調用所提供的相應實參(即創(chuàng)建一個新的存儲副本)對值形參的修改不會影響在方法調用時由調用方給出的實參值類型引用類型19引用形參staticvoidSwap(refintx,refinty){inttemp;temp=x;x=y;y=temp;}ref修飾符聲明的參數為引用參數
調用:Swap(refi,refj);方法調用必須顯式使用ref關鍵字實參必須是變量實參必須為與形參類型相同的變量,且在作為引用形參傳遞之前,必須先明確賦值引用形參并不創(chuàng)建新的存儲位置,其存儲位置就是方法調用中實參變量的存儲位置20兩種傳參方式的比較值調用方法Swap(i,j);調用前i=1j=2調用后x=1y=2調用i=1j=2x=2y=1值調用方法Swap(refi,refj);調用前i=1j=2調用后調用i=2j=1x=1y=2x=2y=1ij213.輸出形參用out
修飾符聲明的形參是輸出形參輸出形參的存儲位置就是實參的存儲位置。方法調用中的對應實參必須為與形參類型相同的變量方法定義和調用都必須顯式使用out關鍵字Out參數只能用于從方法中傳出值,不能接受實參值(與ref的區(qū)別)Out參數在方法結束前必須賦值224.形參數組用params
修飾符聲明的形參是形參數組,允許向方法傳遞可變數量的實參形參數組必須位于該列表的最后必須是一維數組類型。例如,類型string[]和string[][]可用作形參數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油煙機安裝合同協(xié)議書
- 茶山合作協(xié)議書
- 資金收益協(xié)議書
- 拆空調搬運合同協(xié)議書
- 舞蹈師徒協(xié)議書
- 租金減免協(xié)議書
- 瓷磚合伙人合同協(xié)議書
- 比亞迪海豹質保協(xié)議書
- 賠償假牙協(xié)議書
- 資源交換協(xié)議書
- 中國鐵路西安局招聘高校畢業(yè)生考試真題2024
- 2023北京初三一模數學試題匯編:代數綜合(第26題)
- 畢業(yè)設計產品包裝設計
- 安徽卷-2025屆高考化學全真模擬卷
- 河北省石家莊市2025屆普通高中高三教學質量檢測(三)英語試卷及答案
- 2025屆百師聯(lián)盟高三下學期二輪復習聯(lián)考(三)政治試題(含答案)
- 2024年云南省文山州第二人民醫(yī)院選調工作人員考試真題
- 《埃菲爾鐵塔》課件
- 深圳市城市規(guī)劃標準與準則2024版
- 2025年高考化學三輪沖刺:實驗綜合大題 刷題練習題(含答案解析)
- 《低空經濟及其產業(yè)發(fā)展-把握機會、布局未來》課件
評論
0/150
提交評論