Danh mục

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

Số trang: 12      Loại file: ppt      Dung lượng: 150.50 KB      Lượt xem: 13      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:

Trong mục tiêu của chương 6 Nạp chồng toán tử của bài giảng Lập trình hướng đối tượng trong C # trình bày về toán tử, cách dùng từ khóa operator, các toán tử logic hai ngôi, toán tử chuyển đổi kiểu và các ví dụ minh họa.
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 trong C #: Chương 6 - GV. 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đểcaiđătmộtphéptoánnàođótrên ̀ ̣cá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ántử !=…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. Tuy nhiênnếu ta quá lạmdụng đưa vào các toántử quá mới hay quá riêng sẽ làm cho chương trình khó 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ướcnhỏ) lênkiểucaohơn(kíchthướclớn)thìviệcchuyểnđổinày luônthànhcôngnhưngkhichuyểntừkiểucaoxuốngkiểu thấ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(} ...

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