物聯(lián)網(wǎng).NET開發(fā)(第二版) 課件 項(xiàng)目三 銀行卡開戶管理_第1頁
物聯(lián)網(wǎng).NET開發(fā)(第二版) 課件 項(xiàng)目三 銀行卡開戶管理_第2頁
物聯(lián)網(wǎng).NET開發(fā)(第二版) 課件 項(xiàng)目三 銀行卡開戶管理_第3頁
物聯(lián)網(wǎng).NET開發(fā)(第二版) 課件 項(xiàng)目三 銀行卡開戶管理_第4頁
物聯(lián)網(wǎng).NET開發(fā)(第二版) 課件 項(xiàng)目三 銀行卡開戶管理_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

銀行卡開戶管理任務(wù)1:銀行業(yè)務(wù)類定義任務(wù)2:銀行卡賬戶類定義任務(wù)3:銀行卡賬戶開戶實(shí)現(xiàn)項(xiàng)目三一般銀行賬戶分為:借記卡賬戶和信用卡賬戶,銀行卡開戶管理項(xiàng)目實(shí)現(xiàn)了銀行新賬戶開戶,模擬了ATM機(jī)上的存款、取款和余額查詢操作。為解決早期面向過程語言基于模塊設(shè)計(jì)方式,導(dǎo)致軟件修改困難等缺陷,面向?qū)ο蟮募夹g(shù)應(yīng)運(yùn)而生,它是一種強(qiáng)有力的軟件開發(fā)方法,它將數(shù)據(jù)和對數(shù)據(jù)的操作(數(shù)據(jù)和操作該數(shù)據(jù)的方法)作為一個(gè)相互依賴、不可分割的整體,力圖使對現(xiàn)實(shí)世界問題的求解簡單化。它符合人們的思維習(xí)慣,同時(shí)有助于控制軟件的復(fù)雜性,提高軟件的生產(chǎn)效率,從而得到了廣泛的應(yīng)用,已成為目前最為流行的一種軟件開發(fā)方法。C#作為面向?qū)ο蟪绦蛟O(shè)計(jì)語言代表之一,項(xiàng)目由C#面向?qū)ο笳Z言完成。通過項(xiàng)目的實(shí)現(xiàn),有助于理解類和對象的定義、成員變量和方法、構(gòu)造方法、繼承和多態(tài)等C#面向?qū)ο蠡A(chǔ)和應(yīng)用。項(xiàng)目引入掌握類的概念和定義掌握對象的意義和實(shí)例化對象掌握成員方法的定義掌握構(gòu)造方法的定義和作用掌握繼承的概念及使用掌握多態(tài)的概念及使用學(xué)習(xí)目標(biāo)借記卡賬戶:是指先存款后消費(fèi)(或取現(xiàn)),沒有透支功能的銀行卡,即存儲卡賬戶。信用卡賬戶:信用卡是一種非現(xiàn)金交易付款的方式,是簡單的信貸服務(wù)。在借記卡功能的基礎(chǔ)上可以透支,但是有透支額度,即透支只能在一定的金額范圍內(nèi)透支。銀行卡開戶管理項(xiàng)目實(shí)現(xiàn)了銀行新賬戶開戶,模擬了ATM機(jī)上的存款、取款和余額查詢功能。項(xiàng)目首先顯示歡迎使用銀行系統(tǒng),要求用戶進(jìn)行開戶或登錄,如圖3-1所示:項(xiàng)目描述用戶首先選擇開戶功能,系統(tǒng)顯示選擇開戶類型:借記卡賬戶和信用卡賬戶供用戶選擇將要開戶的賬戶類型,也可選擇退出系統(tǒng),系統(tǒng)則自動(dòng)退出,如圖3-2所示:如果選擇借記卡賬戶開戶菜單,顯示借記卡賬戶用戶輸入開戶信息提示,用戶正確輸入相關(guān)信息后,并顯示用戶開戶成功及相關(guān)開戶信息,如圖3-3所示:項(xiàng)目描述如果選擇信用卡賬戶開戶菜單,顯示信用卡賬戶用戶輸入開戶信息提示,用戶正確輸入相關(guān)信息后,顯示用戶開戶成功及相關(guān)開戶信息,如圖3-4所示:如果繼續(xù)選擇主菜單2,則進(jìn)入登錄功能,要求輸入登錄的用戶名和密碼,用戶輸入正確的用戶名和密碼后,進(jìn)入銀行卡存未、取款和查詢余額菜單。如圖3-5所示:項(xiàng)目描述當(dāng)用戶輸入1時(shí),則進(jìn)入存款功能,此時(shí)要求用戶輸入存款金額,用戶輸入正確存款金額后,系統(tǒng)提示存款成功,并回到主菜單。如圖3-6所示:當(dāng)用戶輸入2時(shí),則進(jìn)入取款功能,此時(shí)要求用戶輸入取款金額,用戶輸入正確取款金額后,系統(tǒng)提示取款成功,并回到主菜單。如圖3-7所示:項(xiàng)目描述當(dāng)用戶輸入3時(shí),則進(jìn)入查詢余額功能,則能看到已經(jīng)改變后的賬戶金額并回到主菜單。如圖3-8所示:如果輸入1或2以外的鍵,則系統(tǒng)正常退出。如圖3-9所示:項(xiàng)目描述任務(wù)1:銀行業(yè)務(wù)類定義任務(wù)2:銀行卡賬戶類定義任務(wù)3:銀行卡賬戶開戶實(shí)現(xiàn)工作任務(wù)任務(wù)描述

定義銀行業(yè)務(wù)類的成員變量和方法,實(shí)現(xiàn)主菜單顯示,當(dāng)用戶選擇菜單后,執(zhí)行菜單對應(yīng)代碼塊,如果輸入菜單不存在,則退出系統(tǒng)。任務(wù)1銀行業(yè)務(wù)類定義1.類和對象

面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming)是一種軟件開發(fā)方法,是一種對現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,包括了類、對象、繼承、封裝、多態(tài)性等概念。

現(xiàn)實(shí)世界中的每一個(gè)東西(萬事萬物),既具有獨(dú)特的特征(數(shù)據(jù)),又具有獨(dú)特的行為(方法),那么面向?qū)ο笳Z言就必須把事物的特征和行為定義在一起,這個(gè)概念和語法就是類。知識引入任務(wù)1銀行業(yè)務(wù)類定義1.類和對象知識引入任務(wù)1銀行業(yè)務(wù)類定義類的定義【例3-1】定義一個(gè)Person類,包含相應(yīng)的成員變量和成員方法。ClassPerson{//成員變量(屬性/字段)publicstringname;//姓名publicstringsex;//性別

publicintage;//年齡

publicvoidsleep()//成員方法{Console.WriteLine("是人都要睡覺!");}publicvoidshow()//成員方法{Console.WriteLine("姓名:"+name);Console.WriteLine("性別:"+sex);Console.WriteLine("年齡:"+age);}}1.類和對象知識引入任務(wù)1銀行業(yè)務(wù)類定義對象的定義類是一種抽象,而對象則是實(shí)例,是具體的。把程序中要操作的具有相同數(shù)據(jù)和方法的“對象”歸納起來,定義成類。但是,如果想要執(zhí)行類里面的方法(如學(xué)生類的sleep方法),訪問里面的變量,就會發(fā)現(xiàn)執(zhí)行不了,必須要用類來定義一個(gè)對象(專業(yè)術(shù)語叫做實(shí)例化對象),才能執(zhí)行類里面的方法,才能給里面的變量賦值。例:Personp1;//聲明對象p1=newPerson();//實(shí)例化對象1.類和對象知識引入任務(wù)1銀行業(yè)務(wù)類定義成員方法是定義在類內(nèi)部的方法,反映這個(gè)類具有的行為。在上例中,Person類就有一個(gè)成員方法。在上例Person類中,需要注意四個(gè)要素:public——訪問修飾符:void——返回值類型,該方法沒有返回值;Study——方法名;一對圓括號里面的參數(shù)列表。一共由四個(gè)部分組成,語法格式如下:[訪問修飾符]返回類型<方法名>(<參數(shù)列表>){//方法體}1.類和對象知識引入任務(wù)1銀行業(yè)務(wù)類定義【例3-2】演示如何實(shí)例化一個(gè)Person類的對象和調(diào)用類中的方法。classProgram{staticvoidMain(string[]args){//實(shí)例化對象,調(diào)用方法Personp1;//聲明對象p1=newPerson();//實(shí)例化對象

作用:只有對象才能訪問類的成員="劉邦";//設(shè)置對象屬性(name)的值p1.sex="男";p1.age=32;Console.WriteLine("********調(diào)用對象p1的成員方法************");p1.show();p1.sleep();//調(diào)用對象p1的成員方法sleep()Personp2=newPerson();//聲明并實(shí)例化對象="毛毛";p2.sex="女";p2.age=18;Console.WriteLine("********調(diào)用對象p2的成員方法************");p2.show();}}任務(wù)1

銀行業(yè)務(wù)類定義任務(wù)實(shí)現(xiàn)【例3-3】classBank//銀行業(yè)務(wù)類{protectedstaticList<Account>list=newList<Account>();//使用泛型集合存放賬戶privatestaticlongi=11000000;//指借記卡卡號,每增加一個(gè)用戶,i自增1privatestaticlongj=81000000;//指信用卡卡號,每增加一個(gè)用戶,j自增1//開戶成員方法publicvoidopenAccount(){Console.WriteLine("這是實(shí)現(xiàn)銀行卡賬戶開戶的方法...");}//登錄成員方法publicvoidlogin(){Console.WriteLine("這是實(shí)現(xiàn)用戶登錄的方法...");

}//存款成員方法publicvoidsaveMoney(Accountat){ Console.WriteLine("這是實(shí)現(xiàn)用戶存款的方法...");}//取款成員方法publicvoidtakeMoney(Accountat){Console.WriteLine("這是實(shí)現(xiàn)用戶取款的方法...");}//查詢余額成員方法publicvoidloopMoney(Accountat){Console.WriteLine("這是實(shí)現(xiàn)用戶查詢余額的方法...");}}任務(wù)1

銀行業(yè)務(wù)類定義任務(wù)實(shí)現(xiàn)switch(choice){case1:bk.openAccount();break;case2:bk.login();break;}}while(choice!=0);}}//實(shí)現(xiàn)系統(tǒng)主菜單類classProgram{staticvoidMain(string[]args){Bankbk=newBank();//實(shí)例化對象intchoice;do{Console.WriteLine("****************歡迎使用銀行系統(tǒng)****************");Console.WriteLine("請選擇功能(按其它鍵退出):");Console.WriteLine("1.開戶");Console.WriteLine("2.登錄");choice=Convert.ToInt32(Console.ReadLine());if(choice!=1&&choice!=2){Console.WriteLine("感謝您的使用,歡迎下次光臨!");break;

}類是C#一種自定義數(shù)據(jù)類型,反映了一組相似事物(對象)共同具有的數(shù)據(jù)和行為。對象是具體的實(shí)物,是類具體的一個(gè)個(gè)體。在一個(gè)類中,成員變量表示類的屬性,成員方法反映類的行為。任務(wù)1

銀行業(yè)務(wù)類定義任務(wù)小結(jié)任務(wù)描述定義銀行卡基類(Account類),并分別定義兩個(gè)子類:借記卡賬戶子類(DebitAcc)和信用卡賬戶子類(CreditAccount)。任務(wù)2

銀行卡賬戶類定義1.構(gòu)造方法構(gòu)造方法就是一種特殊的方法,它主要用于為對象分配存儲空間,完成對象初始化工作,必須在實(shí)例化對象的時(shí)候調(diào)用。定義構(gòu)造方法的語法如下:Public類名(參數(shù)列表)//構(gòu)造方法名與類名同名,沒有返回值類型{//構(gòu)造方法體}任務(wù)2銀行卡賬戶類定義知識引入1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識引入【例3-4】結(jié)合上例3-1,給Person類加上無參構(gòu)造方法和帶參構(gòu)造方法。ClassPerson{//成員變量(屬性/字段)publicstringname;//姓名publicstringsex;//性別

publicintage;//年齡

//無參構(gòu)造方法publicPerson(){}//帶參構(gòu)造方法publicPerson(stringname,stringsex,intage){//this表示當(dāng)前類的對象this.用于訪問當(dāng)前類的成員=name;//訪問的是成員。name訪問的是參數(shù)this.sex=sex;this.age=age;}publicvoidsleep()//成員方法{Console.WriteLine("是人都要睡覺!");}publicvoidshow()//成員方法{Console.WriteLine("姓名:"+name);Console.WriteLine("性別:"+sex);Console.WriteLine("年齡:"+age);}}1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識引入【例3-5】分別調(diào)用無參構(gòu)造方法和帶參構(gòu)造方法實(shí)例化對象。classProgram{staticvoidMain(string[]args){Personp1=newPerson();//調(diào)用無參構(gòu)造方法實(shí)例化p1對象Personp2=newPerson("張三豐","男",21);//調(diào)用帶參構(gòu)造方法實(shí)例化p2對象p2.show();}}1.構(gòu)造方法任務(wù)2銀行卡賬戶類定義知識引入構(gòu)造方法名與類同名不能有返回值,且不能寫void構(gòu)造方法的作用如下:

·構(gòu)造方法可以更簡捷地為對象賦初值。實(shí)例化對象的同時(shí),就可以給該對象的所有成員變量賦初值

·對象的每一個(gè)成員變量要存儲數(shù)據(jù),就要在內(nèi)存中開辟空間。類的構(gòu)造方法最大的作用,就是為對象開辟內(nèi)存空間,以存儲數(shù)據(jù)。這也是為什么實(shí)例化對象的時(shí)候,一定要調(diào)用構(gòu)造方法的原因

·構(gòu)造方法只有實(shí)例化對象的時(shí)候才能調(diào)用,不能像其他方法那樣通過方法名調(diào)用

在前面學(xué)習(xí)到,定義一個(gè)變量就會在內(nèi)存中開辟一個(gè)空間存儲數(shù)據(jù)。實(shí)例化一個(gè)對象后,對象的成員變量也要開辟內(nèi)存空間,這個(gè)重要的任務(wù)就是構(gòu)造方法完成的。2.屬性任務(wù)2銀行卡賬戶類定義知識引入在C#中有兩個(gè)常用的訪問修飾符:private和public。程序中一般用public修飾符來定義成員變量和成員方法,這樣就可以在別的類中來訪問它,但這其實(shí)破壞了類的封裝性,因任何類都可以訪問public成員。定義屬性的語法如下:訪問修飾符

數(shù)據(jù)類型

屬性名{get{

返回私有成員變量;}set{

設(shè)置私有成員變量;}}2.屬性任務(wù)2銀行卡賬戶類定義知識引入【例3-6】定義屬性和使用屬性訪問成員變量?!ざx屬性classPerson{privatestringname;privateintage;publicPerson(){}publicPerson(stringname,intage){this.Name=name;this.Age=age;}publicstringName{get{return;}set{=value;//value是隱式的變量}}

publicintAge{get{returnthis.age;}set{this.age=value;//value是隱式的變量}}publicvoidShow(){Console.WriteLine("姓名:"+Name);Console.WriteLine("年齡:"+Age);}}2.屬性任務(wù)2銀行卡賬戶類定義知識引入【例3-6】classProgram{staticvoidMain(string[]args){Personp1=newPerson("張三",19);p1.Show();Personp2=newPerson();p2.Name="毛毛";//對Name屬性賦值,即是對私有成員name賦值p2.Age=17;p2.Show();}}

3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入繼承在面向?qū)ο蠹夹g(shù)中,繼承是提高軟件開發(fā)效率的重要因素之一,指特殊類的對象擁有其一般類的全部屬性與方法,稱作特殊類對一般類的繼承。繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征之一,它可以讓用戶重用代碼,也可以節(jié)省程序設(shè)計(jì)的時(shí)間。繼承就是在類之間建立一種從屬關(guān)系,使得新定義的子類(也叫派生類)的實(shí)例具有父類(也叫基類)的特征和能力。任何類都可以繼承其他的類,這也就是說,這個(gè)類擁有它繼承的類的所有成員。在OOP中,被繼承的類稱為父類或者基類,繼承了其他類的類叫子類或者派生類。繼承的語法格式為:Class類名:父類類名{

類體}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入【例3-7】classPerson//定義Person類,父類{publicstringname;publicintage;publicvoidSay(){Console.WriteLine("你好,我是{0},我今年{1}歲",name,age);}}classMan{publicvoidEat(){Console.WriteLine("我正在吃大閘蟹!");}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入【例3-7】//Student類繼承了Person類,它也具備了Person類的所有成員變量和方法classStudent:Person{//也可以在子類中添加新的成員變量和成員方法publicstringsex;publicvoidPlay(){Console.WriteLine("我是{0}生我怕誰,我在玩天天酷跑.....",sex);}}classProgram{staticvoidMain(string[]args){Studentst=newStudent();="劉備";st.age=18;st.Say();st.sex="男";st.Play();}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入多態(tài)多態(tài)性是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在一般及期限各個(gè)特殊類中具有不同的語義。當(dāng)子類繼承父類后,如何讓子類和父類的方法執(zhí)行起來不一樣,每個(gè)子類都有自己的方式執(zhí)行該“行動(dòng)”?這就是多態(tài)的一個(gè)重要特性——重寫。子類重寫父類的方法,重寫需要用到兩個(gè)關(guān)鍵字:vartual和override。3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入【例3-8】classAnimal//動(dòng)物類{publicstringname;publicvirtualvoidsay()//定義為虛方法,子類可以對父類方法重寫{Console.WriteLine("Animalhou......");}publicvoidrun(){Console.WriteLine("Animalrun......");}}classCat:Animal//貓類{publicoverridevoidsay()//對父類方法進(jìn)行重寫{Console.WriteLine(“Tom:”+"喵喵喵......");}}classMouse:Animal//老鼠類{publicoverridevoidsay(){Console.WriteLine(“Jerry:”+"吱吱吱......");}}classDog:Animal//狗類{publicoverridevoidsay(){Console.WriteLine(“旺財(cái):”+"汪汪汪......");}}3.繼承和多態(tài)任務(wù)2銀行卡賬戶類定義知識引入【例3-8】classProgram{staticvoidMain(string[]args){////父類的句柄可以指向子類的對象,反之則不行//Animalan1=newCat();//an1.say();Catct=newCat();Mousemou=newMouse();Dogd=newDog();PolymorphicTest(ct);PolymorphicTest(mou);PolymorphicTest(d);}staticvoidPolymorphicTest(Animalan){an.say();//多態(tài)性}}【例3-9】實(shí)現(xiàn)銀行卡賬戶類定義,程序代碼如下:classAccount//賬戶類,父類,以下是共有屬性和方法{publiclongaid;//賬戶編號publicstringaname;//儲戶姓名publicstringpersonId;//身份證號publicstringpassword;//密碼publicdoublebalance;//賬戶余額publicAccount(){}publicAccount(longaid,stringaname,stringpersonId,stringpassword,doublebalance){this.aid=aid;this.aname=aname;this.personId=personId;this.password=password;this.balance=balance;}

}任務(wù)2銀行卡賬戶類定義任務(wù)實(shí)現(xiàn)classDebitAcc:Account//借記卡子類{publicDebitAcc(longaid,stringaname,stringpersonId,stringpassword,doublebalance):base(aid,aname,personId,password,balance){}}classCreditAccount:Account//信用卡子類{privatedoubleoverdraft;//透支金額publicCreditAccount(longaid,stringaname,stringpersonId,stringpassword,doublebalance,doubleoverdraft):base(aid,aname,personId,password,balance){this.overdraft=overdraft;}

}構(gòu)造方法用于實(shí)例化對象,并為對象分配空間。C#中只能單繼承,不支持多繼承,子類中可以通過使用base關(guān)鍵字調(diào)用父類的成員方法或構(gòu)造方法。任務(wù)小結(jié)任務(wù)2銀行卡賬戶類定義用戶進(jìn)入系統(tǒng)主菜單后,用戶選擇開戶功能后,顯示借記卡賬戶和信用卡賬戶開戶菜單,用戶選擇其中一種需開戶賬戶后,輸入相關(guān)開戶賬戶信息,當(dāng)用戶輸入信息有誤時(shí),能檢測出異常并輸出相關(guān)異常信息;當(dāng)用戶輸入信息正確無誤后,系統(tǒng)提示開戶成功信息。任務(wù)描述任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)異常異常是程序運(yùn)行時(shí)發(fā)生的錯(cuò)誤或出現(xiàn)某種意想不到的狀態(tài)。如被零除、溢出、數(shù)組下標(biāo)越界或內(nèi)存不足等。C#提供了捕捉和處理異常機(jī)制可以處理這些錯(cuò)誤,當(dāng)程序運(yùn)行時(shí)出現(xiàn)上述某種異常后,就會引發(fā)異常,轉(zhuǎn)而搜索對應(yīng)異常處理程序,當(dāng)前程序停止執(zhí)行。C#中異常是以類的形式出現(xiàn)的。所有異常類都必須繼承Exception類,也就是說Exception類是所有異常類的基類。引發(fā)異常后,應(yīng)用程序或默認(rèn)異常處理程序?qū)⑻幚懋惓?。知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)Exception類描

述Exception異常層次結(jié)構(gòu)的根類ArgumentException向方法提供的任意一個(gè)參數(shù)無效時(shí)引發(fā)的異常ArithmeticException算術(shù)錯(cuò)誤,如除數(shù)為0FormatException參數(shù)的格式不符合調(diào)用方法的參數(shù)規(guī)范時(shí)引發(fā)的異常RuntimeException當(dāng)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤,并且無法確定具體原因時(shí),引發(fā)的異常。DavideByZeroException除數(shù)為0時(shí)引發(fā)的異常IndexOutOfBoundsException數(shù)組下標(biāo)越界時(shí)引發(fā)的異常NullReferenceException嘗試取消引用空對象引用時(shí)引發(fā)的異常IOException出現(xiàn)I/O錯(cuò)誤時(shí)引發(fā)的異常SQLExceptionSQL數(shù)據(jù)庫異常時(shí)引發(fā)的異常異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)(1)使用try/catch語句為捕獲和處理異常,將可能出現(xiàn)異常的語句放到try子句中,當(dāng)執(zhí)行這些語句出現(xiàn)異常時(shí),try子句會捕獲這些異常,然后程序執(zhí)行方向轉(zhuǎn)到catch子句中;如果沒有出現(xiàn)異常,程序就會執(zhí)行try…catch后面的代碼,而不會執(zhí)行catch子句中的代碼。try…catch子句通用語法如下:try{//程序代碼段}catch(Exceptione){//錯(cuò)誤處理代碼}異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)(1)使用try/catch語句【例3-10】數(shù)組下標(biāo)越界處理異常。classProgram{staticvoidMain(string[]args){//使用異常處理機(jī)制int[]arr={1,2,3};try{for(inti=0;i<=3;i++)//出現(xiàn)異常,使用異常處理機(jī)制{Console.WriteLine("arr[{0}]={1}",i,arr[i]);}}catch(IndexOutOfRangeExceptionex1){Console.WriteLine(ex1.Message);}}}異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)(2)使用throw語句拋出異常程序運(yùn)行時(shí)可以捕獲由C#自動(dòng)產(chǎn)生的異常,C#也提供使用throw語句拋出異常,使用throw語句既可以拋出系統(tǒng)異常,也可以拋出開發(fā)人員自己創(chuàng)建的自定義異常。throw的通用語法如下:throw異常對象異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)(2)使用throw語句拋出異常【例3-11】classProgram{staticvoidMain(string[]args){//使用異常處理機(jī)制int[]arr={1,2,3};try{for(inti=0;i<=3;i++)//出現(xiàn)異常,使用異常處理機(jī)制{Console.WriteLine("arr[{0}]={1}",i,arr[i]);}thrownewIndexOutOfRangeException();//拋出異常}catch(IndexOutOfRangeExceptione)//捕獲異常{Console.WriteLine(e.Message);}}}異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)(3)使用多重catch語句Catch塊捕獲try塊引發(fā)的異常,有時(shí)一個(gè)try塊可能需要多個(gè)catch塊捕獲多個(gè)異常,則必須具有多個(gè)catch塊,多重catch語句語法如下:try{//程序代碼}catch(異常類型1e){//錯(cuò)誤處理代碼}catch(異常類型2e){//錯(cuò)誤處理代碼}一個(gè)try塊可以有多個(gè)catch塊,但只能有一個(gè)通用的catch塊,且通用的catch塊必須放到最后一個(gè),否則將產(chǎn)生編譯錯(cuò)誤。(4)使用finally語句當(dāng)與try塊一起使用時(shí),不管是否發(fā)生了異常,都將執(zhí)行finally塊中的語句。因此,一般情況下,finally塊中執(zhí)行一些清除資源的操作。異常知識引入任務(wù)3銀行卡賬戶開戶實(shí)現(xiàn)【例3-12】classProgram{staticvoidMain(string[]args){//使用異常處理機(jī)制int[]arr={1,2,3};try{for(inti=0;i<=3;i++)//出現(xiàn)異常,使用異常處理機(jī)制{Console.WriteLine("arr[{0}]={1}",i,arr[i]);}}catch(IndexOutOfRangeExceptionex1){Console.WriteLine(ex1.Message);}catch(Exceptionex2){Console.WriteLine(ex2.Message);Console.WriteLine("Exception............");}finally{Console.WriteLine("AfterException..........");}}}1.定義銀行賬戶類銀行賬戶類作為借記卡子類和信用卡子類的父類,類中定義了子類共有的屬性和開戶時(shí)需用使用的構(gòu)造方法。classAccount//賬戶類,父類,以下是共有屬性和方法{

……..

}2.定義借記卡子

溫馨提示

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

最新文檔

評論

0/150

提交評論