Danh mục

Bài giảng Lập trình hướng đối tượng: Chương 5 - Phạm Mạnh Cương

Số trang: 12      Loại file: ppt      Dung lượng: 148.50 KB      Lượt xem: 10      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 6 cung cấp kiến thức về nạp chồng toán tử. Nội dung chính trong chương này: Toán tử (operator), cách dùng từ khoá operator, các toán tử logic hai ngôi, toán tử chuyển đổi kiểu (ép kiểu). Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 5 - Phạm Mạnh CươngChương6:NạpchồngtoántửNộidung Toántử(operator) Cáchdùngtừkhoáoperator Cáctoántửlogichaingôi Toántửchuyểnđổikiểu(épkiểu) Vídụ Toántử(operator) TrongC#,toántửlàmộtphươngthứctĩnhdùngđểcàiđătm ̣ ộtphéptoánnàođótrêncácđốitượng.Mụcđíchcủatoántửlàđểviếtmãchươngtrìnhgọngàng,dễhiểuhơn,thayvìphảigọiphươngthức.Tacóthểcàiđặtcáctoántửsau:  Toánhọc:+,,*,/,%.  Cộngtrừmộtngôi:++,,.  Quanhệsosánh:==,!=,>,=, Chúýo Thamsốcủatoántửphảilàthamtrị(khôngdùngcáctừ khóaref,out).o Khôngđượccàitoántử=(gán),&&,||(and,orlogic),?: (điềukiện),checked,unchecked,new,typeof,as,is khôngđượcxemlàmộttoántử.o Khicàiđặtcáctoántửdạng:+,,*,/,%thìcáctoántử +=,=,*=,/=,%=cũngtựđộngđượccàiđặt. Chúý(tt)o Khicàiđặttoántửthìnêncàiđặttheocặpđốingẫu. Chẳnghạn,khicàiđặttoántử==thìquátảithêmtoán tử!=…o Khiđịnhnghĩatoántửépkiểutaphảichỉrađâylàtoán tửépkiểungầmđịnh(implicit)haytườngminh(explicit). CáchdùngtừkhoáoperatorVídụpublicstaticFractionoperator+(Fractionlhs,Fractionrhs) Sựhữuíchcủacáctoántử: Cáctoántửđượcnạpchồng cóthểgiúpchođoạnmãnguồncủatadễnhìnhơn, dễquảnlývàtrongsánghơn. Tuynhiênnếutaquálạmdụngđưavàocáctoántử quámớihayquáriêngsẽlàmchochươngtrìnhkhó sửdụngcáctoántửnàymàđôikhicòncócácnhầm lẫnvôvịnữaCáctoántửlogichaingôi Cáctoántửkháphổbiếnlà  (==)sosánhbằnggiữhaiđốitượng,  (!=)sosánhkhôngbằng,  ()sosánhlớnhơn,  (=)tươngứngnhỏhơnhaybằngvàlớnhơnhaybằng  Làcáctoántửphảicócặptoánhạnghaygọilàcáctoántử haingôi. Toántửchuyểnđổikiểu(épkiểu) TrongC#,khitachuyểntừkiểuthấphơn(kíchthước nhỏ)lênkiểucaohơn(kíchthướclớn)thìviệcchuyển đổinàyluônthànhcôngnhưngkhichuyểntừkiểucao xuốngkiểuthấpcóthểtasẽmấtthôngtinCúphápđịnhnghĩatoántửépkiểu: publicstatic[implicit|explicit]operatorKiểuTrảVềT(TypeV)trongđóTypeVlàbiếncầnépsangkiểuKiểuTrảVềT. Vídụ:xâydựnglớpphânsốvàcàiđặtcác phéptoántrênphânsố.usingSystem; //ChuyendoingamdinhtusonguyensangphanclassPhanSo so{ publicstaticimplicitoperatorPhanSo(inttheInt)intTu,Mau;//privatemembers {//constructor Console.WriteLine(ChuyendoingamdinhtusopublicPhanSo(intTuSo,intMauSo) nguyensangphanso);{ returnnewPhanSo(theInt);Tu=TuSo; }Mau=MauSo; //Chuyendoituongminhphansosangso nguyen;}//constructor publicstaticexplicitoperatorint(PhanSoPS)publicPhanSo(intHoleNumber) { returnPS.Tu/PS.Mau;{Tu=HoleNumber; }Mau=1;}//constructorpublicPhanSo(){Tu=0;Mau=1;} Vídụ:xâydựnglớpphânsốvàcàiđặt cácphéptoántrênphânsố(tt)//toantusosanh== //Tangphansothemmotdonvi!publicstaticbooloperator==(PhanSoPS1,PhanSoPS2) publicstaticPhanSooperator++(PhanSoPS){ {return(PS1.Tu*PS2.Mau==PS2.Tu*PS1.Mau); PS.Tu=PS.Mau+PS.Tu;} returnPS;//Toantusosanh!=; }publicstaticbooloperator!=(PhanSoPS1,PhanSoPS2) //epphansovegiatriTrue,falsedetraloicau{ //doi:daycophailamotphansohoplehaykhongreturn!(PS1==PS2); publicstaticimplicitoperatorbool(PhanSoPS)} {//phongthucsosanh2phansocobangnhauhaykhong returnPS.Mau!=0;publicoverrideboolEquals(objecto) }{ //PhuongthucdoiphansothanhchuoiConsole.WriteLine(PhuongthucEquals); publicoverridestringToString()if(!(oisPhanSo))returnfalse; {returnthis==(PhanSo)o; Strings=Tu.ToString()+/+Mau.ToString(} );//Toantuconghaiphanso returns;publicstaticPhanSooperator+(PhanSoPS1,PhanSo }PS2) }{intMauMoi=PS1.Mau*PS2.Mau;intTuMoi=PS2.Mau*PS1.Tu+PS1.Mau*PS2.Tu;returnnewPhanSo(TuMoi,MauMoi);} Vídụ:xâydựnglớpphânsốvàquátải cácphéptoántrênphânsố(tt)classPhanSoApp{staticvoidMain(){ PhanSof1=newPhanSo(3,4); Console.WriteLine(f1:{0},f1.ToString()); PhanSof2=newPhanSo(2,4); Console.WriteLine(f2:{0},f2.ToString()); PhanSof3=f1+f2; Console.WriteLine(f1+f2=f3:{0},f3.ToString()); PhanSof4=f3+5; Console.WriteLine(f3+5=f4:{0},f4.ToString()); PhanSof5=newPhanSo(4,8); if(f5==f2) { Console.WriteLine(F5:{0}==F2:{1},f5.ToString(),f2.ToString()); } Console.ReadLine();}}Kếtquảcủachươngtrình ...

Tài liệu được xem nhiều: