1 / 26

BUỔI 3: Chương 2 Lớp Đối Tượng - CLASS -

BUỔI 3: Chương 2 Lớp Đối Tượng - CLASS -. Môn : Lập trình hướng đối tượng Trình bày : TRẦN ĐỨC TÂM. Software development process. Khi sử dụng phương pháp hướng đối tượng , quy trình phát triển phần mềm sẽ bao gồm các bước : Xây dựng các lớp đối tượng Khởi tạo các đối tượng cần thiết

brosh
Download Presentation

BUỔI 3: Chương 2 Lớp Đối Tượng - CLASS -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BUỔI 3: Chương2LớpĐốiTượng- CLASS - Môn: Lậptrìnhhướngđốitượng Trìnhbày: TRẦN ĐỨC TÂM

  2. Software development process • Khisửdụngphươngpháphướngđốitượng, quytrìnhpháttriểnphầnmềmsẽbaogồmcácbước: • Xâydựngcáclớpđốitượng • Khởitạocácđốitượngcầnthiết • Tươngtácvớicácđốitượng

  3. Lớp đối tượng bao gồm những thành phần cơ bản nào?

  4. Các thành phần cơ bản của lớp đối tượng • Lớp đối tượng bao gồm 2 thành phần: • Thành phần dữ liệu • Thành phần xử lý • Do đó, khi định nghĩa lớp đối tượng cần: • Định nghĩa tên lớp • Định nghĩa thành phần dữ liệu • Định nghĩa thành phần xử lý

  5. Cú pháp khai báo lớp đối tượng • từ khóa tên lớp • ↓ ↓ • class MyCSharpClass • { • //Khai báo các thành phần dữ liệu • //Khai báo các thành phần xử lý • } • từ khóa tên lớp • ↓ ↓ • class MyJavaClass • { • //Khai báo các thành phần dữ liệu • //Khai báo các thành phần xử lý • } CSharp Java

  6. Trường dữ liệu (Field) • Trường dữ liệu là biến dữ liệu của lớp đối tượng • Trường dữ liệu có: • Tên trường dữ liệu • Kiểu trường dữ liệu • Trường dữ liệu có thể: • Truy xuất giá trị • Gán giá trị class MyCSharpClass { kiểu dữ liệu ↓ int MyField; ↑ } tên trường dữ liệu class MyJavaClass { kiểu dữ liệu ↓ int MyField; ↑ } tên trường dữ liệu CSharp Java

  7. Ví dụ minh họa • Xây dựng lớp đối tượng HCN dùng để mô tả hình chữ nhật. • Lớp đối tượng HCN có thể cho ta biết: • Chiều dài hình chữ nhật • Chiều rộng hình chữ nhật • Diện tích hình chữ nhật • Chu vi hình chữ nhật classHCN { publicdouble height; publicdouble width; } classHCN { publicdouble perimeter; publicdouble area; }

  8. Declaring a class does not create any actual objects • A class is just an abstract description of what an object will be like

  9. Software development process • Khisửdụngphươngpháphướngđốitượng, quytrìnhpháttriểnphầnmềmsẽbaogồmcácbước: • Xâydựngcáclớpđốitượng • Khởitạocácđốitượngcầnthiết • Tươngtácvớicácđốitượng

  10. Đốitượngcũnglàbiếndữliệubìnhthường

  11. Khai báo đối tượng • Đối tượng cũng là biến dữ liệu bình thường. Do đó khai báo biến đối tượng cũng tương tự như khai báo một biến dữ liệu bình thường • Cú pháp khai báo: <tên lớp> <tên biến đối tượng>;

  12. Biến đối tượng lưu trữ địa chỉ của vùng nhớ chứa đối tượng mà nó đang tham chiếu đến

  13. Khởi tạo đối tượng • Lớp đối tượng là kiểu tham chiếu. Do đó, biến đối tượng sẽ lưu trữ địa chỉ của vùng nhớ chứa đối tượng thực sự trong vùng nhớ heap • Khi mới khai báo, mặc định biến đối tượng sẽ trỏ về vùng nhớ null. • Cú pháp khởi tạo đối tượng: từkhóadấungoặctròn ↓ ↓ new TypeName( ) ↑ tênlớpđốitượng

  14. Ví dụ minh họa classMyClass { publicintV1; publicintV2; } classProgram { staticvoid Main() { MyClassA1; //Lệnh 1 A1 = newMyClass(); //Lệnh 2 } } Stack Stack Heap Heap V1 = 0 V2 = 0 null A1 A1 Lệnh 1 Lệnh 2

  15. Ví dụ minh họa classHCN { publicdouble square; publicdouble perimeter; } classProgram { staticvoid Main(string[] args) { HCN a; a = newHCN(); HCN b = newHCN(); HCN c = a; } } Có bao nhiêu đối tượng được tạo?

  16. Software development process • Khisửdụngphươngpháphướngđốitượng, quytrìnhpháttriểnphầnmềmsẽbaogồmcácbước: • Xâydựngcáclớpđốitượng • Khởitạocácđốitượngcầnthiết • Tươngtácvớicácđốitượng

  17. Cách truy xuất thành phần dữ liệu của đối tượng • Cú pháp: <tên đối tượng>.<tên thành phần dữ liệu> • Dấu chấm nói lên quan hệ sở hữu • Ý nghĩa của cú pháp: truy xuất thành phần dữ liệu nào của đối tượng nào classHCN { publicdouble width; publicdouble height; } classProgram { staticvoid Main(string[] args) { HCN a = newHCN(); a.height = 3; a.width= 2; Console.WriteLine(“Chieudai: " + a.height); Console.WriteLine("Chieurong: " + a.width); Console.ReadLine(); } }

  18. Ví dụ minh họa classHCN { publicdouble width; publicdouble height; } classProgram { staticdoubleTinhDienTich(HCN a) { returna.width * a.height; } staticdoubleTinhChuVi(HCN a) { return(a.height + a.width) * 2; } staticvoid Main(string[] args) { HCN a = newHCN(); a.height= 3; a.width= 2; Console.WriteLine("Dientich: " + TinhDienTich(a)); Console.WriteLine("Chu Vi: " + TinhChuVi(a)); Console.ReadLine(); } } Cú pháp ĐÚNG Nhưng SAI về kỹ thuật lập trình OOP Xâydựnglớp KHÔNG cóthànhphầnxửlý

  19. Cáchxâydựngthànhphầnxửlý

  20. Phương thức (Method) • Phươngthứclàhàmxửlý • Khikhaibáovàđịnhnghĩa 1 phươngthứccầnlưu ý đếnnhữngthànhphầnsauđây: • Kiểutrảvề • Tênphươngthức • Danhsáchthamsố • Phầnthựcthicủaphươngthức • class SimpleClass • { • kiểutrảvềdanhsáchthamsố • ↓ ↓ • void PrintNums ( ) • { • Console.WriteLine("1"); • Console.WriteLine("2"); • } • }

  21. Ví dụ minh họa • Tính diện tích hình chữ nhật: • Lấy chiều dài nhân với chiều rộng • Tính chu vi hình chữ nhật: • Lấy chiều dài cộng chiều rộng • Nhân kết quả vừa có với 2 Khôngrõnghĩa Chiềudài, chiềurộngcủahìnhchữnhậtnào?

  22. Ví dụ minh họa • Tínhdiệntíchhìnhchữnhật: • Lấychiềudàicủahìnhchữnhậtđangxétnhânvớichiềurộngcủahìnhchữnhậtđangxét • Tínhchu vi hìnhchữnhật: • Lấychiềudàicủahìnhchữnhậtđangxétcộngchiềurộngcủahìnhchữnhậtđangxét • Nhânkếtquảvừacóvới 2

  23. Khái niệm về tham chiếu this • Tham chiếu this dùng để ám chỉ đối tượng đang gọi phương thức • Ví dụ: • khi hình chữ nhật agọi phương thức tính diện tích thì this chính là a • Khi hình chữ nhật b gọi phương thức tính diện tích thì this chính là b classHCN { publicdouble width; publicdouble height; publicdoubleTinhDienTich() { returnthis.width * this.height; } publicdoubleTinhChuVi() { return (this.width + this.height) * 2; } }

  24. Khái niệm về tham chiếu this (tt) • Tuynhiên, nếukhôngviếtrõ “củađốitượngnào” thìmặcđịnhlà “củađốitượngđangxét - this” • Do đónếukhôngcósựnhầmlẫnthì LTV cóthểbỏtừkhóa “this” classHCN { publicdouble width; publicdouble height; publicdouble TinhDienTich() { returnwidth * height; } publicdouble TinhChuVi() { return(width + height) * 2; } }

  25. Cách gọi phương thức của đối tượng • Cúpháp: <tênđốitượng>.<tênphươngthức> ( <danhsáchthamsố>) • Dấuchấmnóilênquanhệsởhữu • Ý nghĩacủacúpháp: gọiphươngthứcnàocủađốitượngnào classProgram { staticvoid Main(string[] args) { HCN a; a = newHCN(); a.height = 3; a.width = 2; HCN b = newHCN(); b.height = 5; b.width = 4; Console.WriteLine("Dien tich cua a: " + a.TinhDienTich()); Console.WriteLine("Chu vi cua b: " + b.TinhChuVi()); Console.ReadLine(); } }

  26. Bài tập về nhà • Đọcchương 5 vàchương 14 (quyển [2]) đểtrảlờinhữngcâuhỏisauđây: • Phânbiệt Formal Parameter và Actual Parameter • Phânbiệt Value Parameter, Reference Parameter và Output Parameter • Cómấyloại Array. Cáchkhaibáo, khởitạo, sửdụngtừngloại Array Đọcchương4 (quyển [1])

More Related