




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#程序設(shè)計(jì)
第3章C#面向?qū)ο缶幊?基本內(nèi)容屬性索引器方法的參數(shù)小結(jié)3本節(jié)目標(biāo)理解面向?qū)ο蟮幕靖拍罾斫忸惡蛯?duì)象的區(qū)別和聯(lián)系掌握屬性的使用區(qū)別只讀屬性和可讀寫屬性掌握方法的聲明和使用4數(shù)據(jù)安全staticvoidMain(string[]args){StudentmyStudent=newStudent();myStudent.age=-2;myStudent.id="123456";
}非法數(shù)據(jù)身份證號(hào)不能被修改無(wú)法獲得數(shù)據(jù)無(wú)法正常賦值有時(shí)候?qū)㈩愔械淖侄喂_是不安全的如果設(shè)為私有成員能否對(duì)這些字段進(jìn)行規(guī)則約束或者只讀呢?5什么是屬性(property)C#不直接訪問(wèn)類的數(shù)據(jù)通過(guò)訪問(wèn)器訪問(wèn)(get,set)classStudent{//姓名
privatestringname;publicstringName{get{returnname;}set{name=value;}}}返回nameget用于獲取相應(yīng)字段的值set用于設(shè)置字段的值只有g(shù)et時(shí):只讀屬性只有set時(shí):只寫屬性get和set都存在:讀寫屬性屬性的類型和字段類型必須一致。給name賦值[屬性修飾符]
類型屬性名{get{return字段名;}set{字段名
=value;}}6屬性的特點(diǎn)privateintage;//年齡publicintAge{get{returnage;}set
{
if(value>0&&value<100){
age=value;}else{
age=18;}}}控制私有字段的可訪問(wèn)性保護(hù)內(nèi)部數(shù)據(jù)的安全建議類內(nèi)部敏感字段使用屬性來(lái)控制訪問(wèn)類型可以是各種數(shù)據(jù)類型,如:對(duì)象、數(shù)組等等7在類中使用屬性privateintage;//年齡publicintAge{get{returnage;}set
{
if(value>0&&value<100){
age=value;}else{
age=18;}}}myStudent.Age=-20;…//打印myStudent.Age=40;…//打印沒(méi)有訪問(wèn)age公開Age錄入非法數(shù)據(jù)打印私有變量age演示示例:MyAttribute
不公開age通過(guò)公有Age訪問(wèn)和約束私有字段age8屬性注意事項(xiàng)屬性可以被聲明為public,private,protected,internal,orprotectedinternal同一屬性的get和set可以有不同的訪問(wèn)限制不能同時(shí)為get、set指定訪問(wèn)修飾符。get或set的訪問(wèn)修飾符可以和屬性不同,但必須是比屬性有更高的限制9自動(dòng)實(shí)現(xiàn)的屬性自動(dòng)實(shí)現(xiàn)的屬性聲明的基本形式如下:[屬性修飾符]類型屬性名{get;set;}[;]編譯器將創(chuàng)建一個(gè)私有的匿名后備字段,該字段只能通過(guò)屬性的get和set訪問(wèn)器進(jìn)行訪問(wèn)必須同時(shí)定義get和set訪問(wèn)器如果想只讀訪問(wèn)該屬性,則將set訪問(wèn)器設(shè)置為private10基本內(nèi)容屬性索引器方法的參數(shù)小結(jié)11索引器的聲明和訪問(wèn)定義格式:
[修飾符]<類型名>this[下標(biāo)索引]{get;set;}類、字符串等整數(shù)或字符串索引器(indexer)允許class、struct的實(shí)例像數(shù)組一樣進(jìn)行索引與屬性類似,又被稱為帶參數(shù)的屬性便于訪問(wèn)對(duì)象中封裝的內(nèi)部集合或數(shù)組索引器的訪問(wèn)方式:對(duì)象[索引參數(shù)]和屬性具有相同的訪問(wèn)修飾符不能使用ref或out關(guān)鍵字修飾12練習(xí)編寫一個(gè)程序,用于接受四年制大學(xué)生每年的GPA(GradePointAverage,年級(jí)平均成績(jī)),計(jì)算GPA平均值,并顯示該值。Student類定義一個(gè)數(shù)組,用于存放每年的GPA值要存儲(chǔ)和檢索每年的GPA值,可以使用索引器年級(jí)可以用作索引器的索引13publicclassStudent{
//四年的成績(jī)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年成績(jī):"+st1[0]);}14索引器的聲明和訪問(wèn)索引與屬性的比較:與屬性一樣是類的函數(shù)成員,而不是數(shù)據(jù)成員名稱固定為關(guān)鍵字this,且必須指定索引的參數(shù)表必須為實(shí)例成員get訪問(wèn)器具有和索引器一樣的形參表set存取器也有一個(gè)value參數(shù)訪問(wèn)方式與數(shù)組類似,使用[]訪問(wèn)元素什么情況下使用索引器?適合于具有序列性質(zhì)的數(shù)據(jù)類型,并要在類型中聲明一個(gè)可以存儲(chǔ)序列數(shù)組的字段。15基本內(nèi)容屬性索引器方法的參數(shù)小結(jié)16方法的聲明和調(diào)用方法的聲明:[方法修飾符]
返回值類型方法名(
[形參列表]
){方法體}方法的調(diào)用方法類似于字段的訪問(wèn):對(duì)象.方法名([實(shí)參列表]);return語(yǔ)句返回類型不是void,必須使用return返回類型為void可以沒(méi)有return,執(zhí)行代碼末尾也通過(guò)return選擇出口,但不能加表達(dá)式方法:也叫函數(shù),表示類的行為。17方法的參數(shù)類型方法的聲明可以包含一個(gè)[形參列表]方法調(diào)用時(shí)則通過(guò)傳遞[實(shí)參列表]方法體中不能定義同名的局部變量有四種類型的參數(shù)值形參(valueparameter),聲明時(shí)不帶任何修飾符引用形參(referenceparameter),用ref
修飾符聲明輸出形參(outputparameter),用out
修飾符聲明形參數(shù)組(parameterarray),用params
修飾符聲明181.值形參聲明時(shí)不帶修飾符的形參是值形參,用于輸入?yún)?shù)的傳遞值形參對(duì)應(yīng)于方法聲明空間的局部變量,其初始值為方法調(diào)用所提供的相應(yīng)實(shí)參(即創(chuàng)建一個(gè)新的存儲(chǔ)副本)對(duì)值形參的修改不會(huì)影響在方法調(diào)用時(shí)由調(diào)用方給出的實(shí)參值類型引用類型19引用形參staticvoidSwap(refintx,refinty){inttemp;temp=x;x=y;y=temp;}ref修飾符聲明的參數(shù)為引用參數(shù)
調(diào)用:Swap(refi,refj);方法調(diào)用必須顯式使用ref關(guān)鍵字實(shí)參必須是變量實(shí)參必須為與形參類型相同的變量,且在作為引用形參傳遞之前,必須先明確賦值引用形參并不創(chuàng)建新的存儲(chǔ)位置,其存儲(chǔ)位置就是方法調(diào)用中實(shí)參變量的存儲(chǔ)位置20兩種傳參方式的比較值調(diào)用方法Swap(i,j);調(diào)用前i=1j=2調(diào)用后x=1y=2調(diào)用i=1j=2x=2y=1值調(diào)用方法Swap(refi,refj);調(diào)用前i=1j=2調(diào)用后調(diào)用i=2j=1x=1y=2x=2y=1ij213.輸出形參用out
修飾符聲明的形參是輸出形參輸出形參的存儲(chǔ)位置就是實(shí)參的存儲(chǔ)位置。方法調(diào)用中的對(duì)應(yīng)實(shí)參必須為與形參類型相同的變量方法定義和調(diào)用都必須顯式使用out關(guān)鍵字Out參數(shù)只能用于從方法中傳出值,不能接受實(shí)參值(與ref的區(qū)別)Out參數(shù)在方法結(jié)束前必須賦值224.形參數(shù)組用params
修飾符聲明的形參是形參數(shù)組,允許向方法傳遞可變數(shù)量的實(shí)參形參數(shù)組必須位于該列表的最后必須是一維數(shù)組類型。例如,類型string[]和string[][]可用作形參數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校食堂蔬菜清洗與處理流程
- 2025年鄉(xiāng)村醫(yī)生考試題庫(kù):農(nóng)村居民健康管理服務(wù)規(guī)范試題匯編與解析
- 教育行業(yè)教師工資支付保障措施
- 2025年一級(jí)建造師考試建筑工程施工組織與施工管理科目重點(diǎn)試題
- 2025年初中學(xué)業(yè)水平考試地理模擬試題:地圖與地球知識(shí)專項(xiàng)解析與答案
- 2025年安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)考試題庫(kù):安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)安全管理試題
- 2025年大數(shù)據(jù)分析師職業(yè)技能測(cè)試卷:數(shù)據(jù)挖掘與數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)試題集
- 人教版體育課資源整合計(jì)劃
- 2025年SAT語(yǔ)法知識(shí)測(cè)試卷:語(yǔ)法填空與改錯(cuò)技巧解析
- 2025年信息系統(tǒng)項(xiàng)目管理師考試項(xiàng)目溝通管理試題
- 中國(guó)鐵路西安局招聘高校畢業(yè)生考試真題2024
- 2023北京初三一模數(shù)學(xué)試題匯編:代數(shù)綜合(第26題)
- 畢業(yè)設(shè)計(jì)產(chǎn)品包裝設(shè)計(jì)
- 安徽卷-2025屆高考化學(xué)全真模擬卷
- 河北省石家莊市2025屆普通高中高三教學(xué)質(zhì)量檢測(cè)(三)英語(yǔ)試卷及答案
- 2025屆百師聯(lián)盟高三下學(xué)期二輪復(fù)習(xí)聯(lián)考(三)政治試題(含答案)
- 2024年云南省文山州第二人民醫(yī)院選調(diào)工作人員考試真題
- 《埃菲爾鐵塔》課件
- 深圳市城市規(guī)劃標(biāo)準(zhǔn)與準(zhǔn)則2024版
- 2025年高考化學(xué)三輪沖刺:實(shí)驗(yàn)綜合大題 刷題練習(xí)題(含答案解析)
- 《低空經(jīng)濟(jì)及其產(chǎn)業(yè)發(fā)展-把握機(jī)會(huì)、布局未來(lái)》課件
評(píng)論
0/150
提交評(píng)論