Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 210 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
210
Dung lượng
1,29 MB
Nội dung
!"#$%&'( )*)+,-( +./012,223)45 2678)955 :;7<0=>2-9?2-@ABC27<D-@EF5 G,45 ?+22)99)H>I09)9JFK5 @@*<D-2-2,2L0MN?23)5 O 5 P./012,2678)C2;?Q25R 0$3Q+S>0H9?2-F5R H./012,2TU9)245V WD2XBC25 Y880MN?Z[?)2,2?;2\45( ]^_A `% )abQ0= c\0154 c\014 +./01: c\0154 : c\014 V c\01R4 R 2"X)?2,2?Qd?eRR 0B7)+,-f?RV H678)9: ./019gb+N)9BC2+ET23): ./01678)\g)-N;)9hi2:: 9/01+E7)+,-)H:: W$EE9)-2jh9)-2j2-H2-:k ./01E9)-2j3Q+SP *g?0MN?lh2,2BC228,mlfh2-9?2-9)-2jPV ./012,2LUV5 n$7<D-)Hg2eD-gN23)V: 7D2XBC2VV abQ0=)9-)-,22,2BC2+)-X4VV abQ0=;H2-N2,2j-,TH2-k o8j0MN?Z[?)2,2?;2\kP p%$q^"#$%&'c]r!o$^s 5 b?54.=7,2)?M)7)+,-L0MN??+2)7Z?+2E -t"eQ\01i)5 b?4)9929/01E-t*-9/019t5 )?R4+Qf2,2C29/012,2u9)2,2L9)22 9/017)-t ?7ZD-2gN23)lt5 v]^_Awo^x^: N?0u=2 Z"$v R 5: y]^_Azo${A4 !"#$%&'(5 )-,/4(5 +X-,/4(5 2G,D2X-,/4( 0-,/;Z4(R H-,/)Z4(R W$|ZMy7,24(R AD9/0123)2,2-,/4(P ;9}T9/012,2-,/D2X4(P &T?2L?79/01-,/4(V n~?2g23)2X-,/(V ]^_A `%(k )]^_Ar!o$^s h"#$%&'(k +p%$q^"#$%&'c]]^_A `%5 )X-,/>•F)H2-5 )h$0u45 +X-,/;Z5R 2abQ0=;9-?228)L=2>H)Fl->))QFD2X-,/ •h€•0e?9C25V 0abQ0=;b9T)9-)-,-,/T=2N 2,2N19)?45( HabQ0=;H2-=2N2,2QT?2L?9)?455: p%$q^r!o$^s "#$%&'55( v]^_Awo^x^55 !"#$%&'5V )*E6)45V *,N4E?EM2,‚2dbQ0=5V +67-,)9H45k 267-,Hƒ45k 0\)45 )-XM„2g9)?5 Ho…45 WT2e7E6)45( ;22-T2e2,27,27E6)7827)+,-67-, 9H)H0)Q267-,)99v-Q+e7-7)+,-7E6)8f?, 9|7+T0m25( ,2?Qd?e-H2H045( "6?45( .=7,2)?M)BC2)BC26?45R no223)e2l2,2>"†+nH2F45R 7*g?-d%d5R5 "X)?45R ]^_A `%5RR )*E6)5RR N?0u=2 Z"$v : abQ0=0ud?e6)7E62B9<5RR C2;?Q2A-H2H05:5 ,2?Q23)678)H)?+25: 4c\01f2,2?Q223)678)H)5P "2B9<L5P: +T2e7E6)5V 2\)5V: 0"6?5k5 HabQ0=X)?5kP ‡.ˆp%$q^"#$%&'45k vp%$q^wrx"‰^55 y]^_Awo^x^45: !"Š$%&'5(5 )*,Nf)-0N5(5 +„;)-0N5(5 2?Qd?eBC223))-0N5( 0-,/945( H-,/)95( W=23[?QE)-0N5(R =2N)-0N;2,2}5(R ]^_A `%5(R )./01)-0N5(R + <;;)-0N9==2f?)-0N23);5(V 2abQ0==23[?QE;)-0N5(( 0abQ0==2)-0N;2,2}: p%$q^c]rx"‰^k vp%$q^c]]^_Aw"] N?0u=2 Z"$v P Q)Q7-)i2),ge)h„2+N9= +‹•23)2ZNZi2?Z)Q•, g6}h6QZM2ŒQ,2Z M?Z)})QE7•212MD2E2-2,2 ZM2Œ ZM;2Z21G2-}gN2,2 ef=2ET,Q\;2,2M?N?c9=,g 23)i2h2,2ZM)0LE-,g,C2,2,2 C223)=2E 2N0)ZM De-+;ZMy23)‚ 2-9-W N)Q ?9,2Q2?2e2-2,2+DM7EC22B+l T[?)EN2mU)2„ +ŽZM-C01=2•,012G2- Z;2,2N?[?l o,-+)-X:2B4 Chương 14Y Chương 2:D2X-,/T Chương 3:*E6)) Chương 4:o)-0N c|;2B2GZ28+Q8•ef• ?QE28+lu?H-6;0??|2B N+=l>280uFgG2,2+DN=2 ?Q2?9,2QL-‚-d-h0- })7EC228D2•22•9‘7Z,7SM 9)LE?98cQ2GZe-29=8 823)LQ2Z+D+…g2?9,2Q2-NB GZd2b2lB2)h’h)h2mhH“ LQ?Q•$M?YZ2‹2,2LQ2Z-7-)ZN Z}Y$.A*$&T‚D-f?7N2-2G H-fQa2,Bi9=G”23)+D+… N?0u=2 Z"$v V Hưng Yên Q , V k 89T=2N4 Nguyễn Hương Chanh Nguyễn Thị Lê Trần Thị Lương N?0u=2 Z"$v k Hưng Yên,Q,Vk !"#$%"&' ()*+,- N?0u=2 Z"$v 4.)?7g?d-2BQ}i228g• 22,2;0?9)?4 •*)+,- •*)+,-9/012,223) •678)9 •,2?;2\?Q2 •$E •$E9)-2j •$3Q+S •./012,2TU •D2XBC2 •Y880MN?Z[?)2,2?;2\ . /0123 . 4 "5#$678 ;+)-X282,2?;2\BC2Yg7) +,-;)9/01678) !!2e?G29)?bQ4 ,2?;2\?Q2X282,2678)9)?bQ>9‘ +Q2E<L9)?F4?+2h)HhH)h-H2H0hH) -H2H0 -h2-j2G)7)+,-2,22)99X)? Z}7)+,-X)?7C0128[?QZ )99X2-j9/01-;+;2)992C)87828 L=2?+2 N?0u=2 Z"$v ( [Thuộc tính truy cập] class <tên lớp> { Khai báo các thuộc tính của lớp Khai báo các phương thức của lớp } e?G27)+,-;2)99X9)?4 5. 9:;<'!#=>"?@A'! 678B Yg9/01)l7)+,-23)8*; 23)2D-)828LQ32,2?;2\h BC223)9/01?;2\BC223) ,2L23);2–?29/01728gN23) h6}-28;7<0=9)2Yg 7)+,-;23))0‹678)"#7)+,-8 H-2e?G29)?4 Yg?QE;BC2)Z[?)T+E -,/2e—˜4 Y2,2X)?hg?Q2EM?;2\ BC223)2)99X77)+,-2L2–)2C) =8 ?9/01+E23)2C)2,2+E23) N?0u=2 Z"$v 5 <tên lớp> <tên đối tượng> = "# <tên lớp> ([các giá trị khởi tạo nếu có]) <tên đối tượng>$ <tên phương thức> ([danh sách các đối số nếu có]) !! class1 { // khai báo thuộc tính // khai báo các phương thức 8C56" !!class2 { // khai báo các thành phần dữ liệu // khai báo các phương thức } } 0‹g2C)l7)+,-9)2l7)+,- 2C)8 c\0154D‚7)+,-;0HLQ32,2?;2 \2,2BC2>l9/28BC2H>FFh+bQ} +D?D-;?T23)Q9/01 BC2Ngl7)+,-);+E 9)?4 0H™Hƒ0H>F“ H>F“ c\014YmU)H-)-Q282C) H?h?9/0123)H?+•+?;2+D l7)+,-2–š2C)<bQH-)9)?4 H-)H?2-™HƒH-)H?>F“ 9)?8N2?Qd?eE2,2BC223)E +}<-7Z9/012B C223)2C)82–9/012L0MN?U 23)2C)Z . DE ?"F 678)90‹g)2E?E2\+lb23) 89;2-S›Ž)Q+T-23)|; BC223)+lb2G28g)2E?E2,2 2,2+E7,223);678)9- 2ŒB=9-•• 8+)2,2g9/01678)9 €Sử dụng this để phân biệt rõ giữa các thành viên thể hiện và các tham923)BC27)9/01+EgNT23) )9-BC2‹)??QTE??28 =B29=šh+D228g0‹T+ET T)97,2)?6L? c\014-H-)28+ETQhQ BC2 N?0u=2 Z"$v 55 ?+29Ha&>dhQF K 9d™d“ 9Q™Q“ O 9dh9Qg)2E?EL0MN?23) dhQœdhQ<+Tlj,2\)9?Qf -23)BC29Ha& - Sử dụng this để trao đốitượng hiên hành như là một thông số2- ;9=7,2*8;BT9‘< ;)923)BC2 c\ 014 ) 2)995 28 2C) B C2 H)0-?->Fh 2)99 28 2C) B C2 9)-2H0-?->F??Qf)92-823) 2)9959/01678)\9)?4 ?+2-09)-2H0-?->2)995)F K )H)0-?->9F“ O - Sử dụng this để thao tác với các indexer }29/01 -+l0‚Qh0HdH2,2 G.HIJ";K'!L$'F?MC?$MN-@O'!?PJ"?Q$N?"R?6S8T Cú pháp: 8C56"6 FF UVLW;F? UF>XTY NN4J"?Q$$#?Z'8[';6"\C 678 ] -82)99)H4T %&'()*+,-'./012 3 2-1,(4.(5/617 N?0u=2 Z"$v 5 [...]... được tham chiếu đến là đốitượng GC (garbage collector) Đốitượng này thực hiện công việc rọn rác qua 3 bước như sau: - Tìm kiếm những đốitượng không còn được tham chiếu nữa - Cố gắng các hoạt động để giải phóng đốitượng không còn được tham chiếu - Thi hành phương thức finalize() để hủy đốitượng Tài liệu hướng dẫn thực hành Môn LTHDT với C# 14 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 Ngoài... destructor nào thì trình biên dịch sẽ gọi tiến trình Garbage collector trong ngôn ngữ C# để giải phóng đốitượng này trong bộ nhớ Phần lớn trong ngôn ngữ C# thì Tài liệu hướng dẫn thực hành Môn LTHDT với C# 15 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 cócơ chế tự động gom rác mỗi khi biến đó không được tham chiếu đến nên chúng ta không cần quan tâm nhiều đến nó như trong C++ e Sử dụng các thành... thức gồm Nhập: thi hành phương thức nhap() cho từng đốitượng kiểu hocsinh In danh sách: thi hành phương thức hien() cho từng đốitượng kiểu hocsinh Sắp xếp danh sách theo thứ tự năm sinh giảm dần b, Bài giải mẫu: namespace vidu6 { class Program { class Hocsinh { Tài liệu hướng dẫn thực hành Môn LTHDT với C# 36 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 private string ms; private string hoten;... Tài liệu hướng dẫn thực hành Môn LTHDT với C# 23 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 b Sử dụng lớp Ví dụ 1: Xây dựng lớp diem như bài 1 sau đó viết chương trình nhập tọa độ của điểm từbàn phím, di chuyển một tọa độ, lấy tọa độ đối xứng, hiện tọa độ của điểm lên màn hình a, Hướng dẫn: Thuộc tính và phương thức của lớp diem giống hệt bài trên, khi đó muốn xây dựng chương trình ta... vùng nhớ đã cấp phát cho đốitượng khi mà đốituợng không còn được tham chiếu đến Hàm hủy bỏ là một hàm không có giá trị trả về có tên trùng tên với class và có thêm kí tự “~”ở trước Muốn khai báo một destructor chúng ta khai báo nó với cú pháp như sau: class className{ public ~className() {Ư Tài liệu hướng dẫn thực hành Môn LTHDT với C# 13 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 public classname... lớp nhưng chúng lại có thể truy nhập đến phương thức tính diện tích và phương thức hiện của lớp Như vậy là trong cùng một lớp các phương thức cùng cấp có thể truy xuất lẫn nhau Tài liệu hướng dẫn thực hành Môn LTHDT với C# 29 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 Ví dụ 3: Sử dụng lớp stack ở trên để xây dựng một chưong trình chuyển đổi cơ số đếm từ hệ 10 sang hệ 2, hê 8, hệ 16 bằng... hướng dẫn thực hành Môn LTHDT với C# y = -y; } 20 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 public void hien() { Console.Write("toa do :("); Console.Write("{0},{1}", x, y); Console.WriteLine(")"); } } Trong ví dụ trên, chúng tôi chỉ ra cách khai báo một lớp thì cần phải khai báo tường minh các thuộc tính (thành phần dữ liệu), và Tài liệu hướng dẫn thực hành Môn LTHDT với C# 21 Bài tập lập. .. chương trình là khi cua diem: 8 19 diem b toa do : (8,19) toa do doi xung la: toa do(-8,-19) Tài liệu hướng dẫn thực hànhdi chuyen la: với C# diem b sau khi Môn LTHDT toa do (-6,-13) 25 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 Ví dụ 2: Xây dựng chương trình nhập tam giác, tính chu vi, diện tích và in ra màn hình đó là loại tam giác nào: cân, vuông, vuông cân, đều hay thường - a, Hướng dẫn:... chương trình ta chỉ việc sử dụng đốitượng của lớp mà thôi Muốn vậy phải khai báo đốitượng kiểu lớp bằng sử dụmg từ khóa new để cấp phát vùng nhớ Để truy xuất đến các phương thức của lớp thì ta truy xuất thông qua các đốitượng của lớp diem Chẳng hạn như cóđốitượng của lớp la A muốn truy xuất tới phương thức nhap() thì ta truy nhập như sau: A.nhap(); b, Chương trình hoàn thiện như sau: using System;... không thể theo dõi nó được như trong C++ vì thế thường gây ra những hậu quả khó lường Tài liệu hướng dẫn thực hành Môn LTHDT với C# 16 Bài tập lậptrìnhhướngđốitượng với C# Năm 2008 - Khởi tạo private constructor: Việc sử dụng một hàm khởi tạo private trong lớp sẽ có tác dụng ngăn chặn tạo ra bất kì một đốitượng nào của lớp Hàm khởi tạo private này mặc nhiên, không có tham số gì cả và trống rỗng Khi . 5 <tên lớp> <tên đối tượng& gt; = "# <tên lớp> ([các giá trị khởi tạo nếu có]) <tên đối tượng& gt;$ <tên phương thức> ([danh sách các đối số nếu có]) !! class1 { //. 55 ?+29Ha&>dhQF K 9d™d“ 9Q™Q“ O 9dh9Qg)2E?EL0MN?23) dhQœdhQ<+Tlj,2)9?Qf -23)BC29Ha& - Sử dụng this để trao đối tượng hiên hành như là một thông số2- ;9=7,2*8;BT9‘< ;)923)BC2 c. „20‹BC2i,223)=;2?2e 7Zg2,2ŽBC2v9-9H>F9‘2iN2 l8?QT7Zgd,2m2b?N?99‘ l+l-ŽBC2v9-9H>F9‘2i-}) 9e./01?9+Ž2,2i2b?N?9?Qf -T?3Q+S4 using (tên đối tượng cần hủy bỏ) *-7Z7)+,-;0H9?2--+T 0m29‘iEo)+)H2-H2--ZMgl 8Q-+;AL-ZM N?0u=2