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
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 ...
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ìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Nạp chồng toán tử Cách dùng từ khoá operator Toán tử logic hai ngôi Toán tử chuyển đổi kiểuGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 259 0 0 -
101 trang 198 1 0
-
14 trang 131 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 111 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 92 0 0 -
265 trang 76 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 73 0 0 -
33 trang 63 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 51 0 0