Lập trình hướng đối tượng 2 ppt

100 246 0
Lập trình hướng đối tượng 2 ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LẬP TRÌNH HƯỚNG ðỐI TƯỢNGLẬP TRÌNH HƯỚNG ðỐI TƯỢNG Chương 1 lttlan.tdu@gmail.com http://lttlan-tdu.blogspot.com 9/30/2009 1 NộiNội dungdung • Lập trình thông thường. • Lập trình hướng ñối tượng. •• UUnified MModeling LLanguage - UML. 2 LậpLập trìnhtrình thôngthông thườngthường • Lập trình tuyến tính – Tư duy theo lối tuần tự, ñơn giản. – ðơn luồng và các công việc ñược thực hiện tuần tự trong luồng ñó. – Tồn tại trong modul nhỏ của phương pháp lập trình khác. – Không giải quyết ñược các yêu cầu phức tạp. 3 LậpLập trìnhtrình thôngthông thườngthường ((tttt)) • Lập trình cấu trúc – Cấu trúc dữ liệu : cách tổ chức dữ liệu , mô tả bài CCấấu trúc du trúc dữữ liliệệuu + GiGiảải thui thuậậtt = ChChươương trìnhng trình – Cấu trúc dữ liệu : cách tổ chức dữ liệu , mô tả bài toán dưới dạng ngôn ngữ lập trình. – Giải thuật: một quy trình ñể thực hiện một công việc xác ñịnh. 4 LậpLập trìnhtrình thôngthông thườngthường ((tttt)) • Lập trình cấu trúc (tt) – Phân chia chương trình chính thành các chương trình con cho phù hợp với yêu cầu, chức năng và mục ñích của mỗi bài toán mục ñích của mỗi bài toán – Giải thuật luôn phụ thuộc chặt chẽ vào cấu trúc dữ liệu 5 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng • Một số khái niệm cơ bản • Lập trình hướng ñối tượng Object Oriented Programming – OOP • Các ñặc ñiểm của OOP • Các ñặc ñiểm của OOP 6 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản • ðối tượng (Object) – Trong thế giới thực: • ñối tượng là một thc th (entity) cụ thể mà thông thường ta có thể sờ, nhìn thấy hay cảm nhận ñược. – Trong lập trình : – Trong lập trình : • Dùng ñể mô tả 1 người, sự vật hay khái niệm. • ðối tượng là cái mà ứng dụng muốn ñề cập ñến. • Trong hệ thống hướng ñối tượng, mọi thứ ñều là ñối tượng. 7 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • ðối tượng trong thế giới thực Trạng thái: • màu • hãng sản xuất • hãng sản xuất • model • giá • … Hành ñộng: • Dừng • Chạy • Tăng tốc •Thắng •… xe hơi 8 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • ðối tượng trong thế giới thực (tt) – Mọi ñối tượng ñều có trạng thái (state) và hành ñộng (behavior) 9 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • ðối tượng trong lập trình – Thuộc tính, ñặc tính, dữ liệu (attribute, property, data): • Trình bày, mô tả các ñặc ñiểm của ñối tượng. – Phương thức, ứng xử, hàm (method, behavior, function): • Liên quan ñến những thứ ñối tượng làm. • Tác ñộng lên dữ liệu của ñối tượng. 10 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) Thuộc tính: •tiêu ñề •nội dung •kích thước • màu … • màu … Phương thức: •vẽ •di chuyển •ñổi kích thước •ñóng, … 11 12 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) Thuộc tính: •Màu lá •Màu thân •Chiều cao • Tọa ñộ • Tọa ñộ Phương thức: •vẽ 13 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • Thể hiện (instance) – Thuộc tính ñược xác ñịnh giá trị cụ thể. – ðối tượng cụ thể gọi là một thể hiện. ðối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính bởi các phương thức liên quan. ðốiðối tượngtượng XeXe ñạpñạp ((làlà 1 1 thểthể hiệnhiện)) 14 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • Lớp (class) – Là mẫu (prototype) của các ñối tượng cùng kiểu. – Là khuôn ñể ñổ ra các ñối tượng. – ðịnh nghĩa các thuộc tính và phương thức – ðịnh nghĩa các thuộc tính và phương thức chung cho các ñối tượng có cùng loại. VD: Lớp XeDap là thiết kế chung cho các ñối tượng xe mini, xe ñòn, xe ñầm, xe ñua, xe leo núi, … 15 MộtMột sốsố kháikhái niệmniệm cơcơ bảnbản ((tttt)) • Lớp (class) – Lớp tạo ra ñối tượng: bằng cách gán giá trị cụ thể cho các thuộc tính. • Lớp ñược tạo ra khi biên dịch • ðối tượng tạo ra khi thực thi chương trình. ðối tượng là một thể hiện (instance) của 1 lớp 16 NhanVienNhanVien – Mã nhân viên – Họ và tên – Năm sinh – Nghề nghiệp Nghề nghiệp – ðịa chỉ – Hệ số lương – Chức vụ + Làm việc () + Nghỉ phép () + Lãnh lương () ÔngÔng NVANVA BàBà TTBTTB Ông LVCÔng LVC 17 Một số khái niệm cơ bản (tt)Một số khái niệm cơ bản (tt) • Truyền thông báo – Thông báo (message): là 1 lời yêu cầu 1 hoạt ñộng. – Thông báo bao gồm: • ðối tượng nhận thông ñiệp . • ðối tượng nhận thông ñiệp . • Hoạt ñộng (tên của phương thức thực hiện). • Chi tiết thực hiện (giá trị các tham số). – Truyền thông báo: kích hoạt hàm cùng tên trên 1 ñối tượng ñể yêu cầu thông tin. 18 NhanVienNhanVien – Mã nhân viên – Họ và tên – Năm sinh – Nghề nghiệp NhanVienNhanVien – 8494 – NVA – 1970 – Ths Tin học Nghề nghiệp – ðịa chỉ – Hệ số lương – Chức vụ + Làm việc () + Nghỉ phép () + Lãnh lương () ÔngÔng NVANVA Ths Tin học – ðH Tây ðô – 3.04 – Giảng viên NVA.nghỉNVA.nghỉ phépphép (22/9/2009)(22/9/2009) 19 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng • Một số khái niệm cơ bản Lập trình hướng ñối tượng (Object Oriented Programming – OOP) • Các ñặc ñiểm của OOP • Các ñặc ñiểm của OOP 20 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng (OOP)(OOP) ThuThuộộc tínhc tính + HàmHàm = ĐĐốối ti tượượngng Các thể hiện, đặc tính, trạng thái của đối tượng Các hoạt động, thao tác của đối tượng Mục tiêu chính  Phân tích bài toán thành nhiều ñối tượng.  Quan tâm ñến dữ liệu hơn thủ tục.  Dữ liệu ñược bảo vệ (che giấu) và không thể truy xuất từ bên ngoài ñối tượng. 21 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng ((tttt)) ðối tượng 1ðối tượng 1 Dữ liệu Hàm  Dữ liệu và thủ tục ñược xử lý chặc chẽ với nhau.  Quan tâm ñến mối liên hệ giữa thủ tục và dữ liệu . ðối tượng 1ðối tượng 1 Dữ liệu Hàm Dữ liệu Hàm ðối tượng 3ðối tượng 3 ðối tượng 2ðối tượng 2 liệu .  Dễ chỉnh sửa, thêm mới dữ liệu và hàm trong 1 ñối tượng.  Mục tiêu là tăng cường khả năng sử dụng lại. 22 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng ((tttt)) • Sự trừu tượng hóa (abstraction) 23 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng ((tttt)) • Sự trừu tượng hóa (abstraction) – Là bước tiến hóa tiếp theo từ lập trình cấu trúc. – Chỉ quan tâm ñến những ñặc ñiểm cần thiết (phớt lờ ñi những chi tiết) tùy vào ngữ cảnh: VD: Phân tích thông tin của 1 người: - Trong ngữ cảnh làm việc trong trường. - Trong ngữ cảnh học tại trường? NhanVienNhanVien – Mã nhân viên – Họ và tên – Năm sinh – … 24 OOPOOP 25 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính bao gói • Tính thừa kế • Ảo hóa • ða hình • ða hình 26 Tính bao góiTính bao gói • Là ñặc ñiểm chủ yếu của OOP. • Che giấu việc thực thi chi tiết của 1 ñối tượng. • Ngăn sự tác ñộng từ ñối tượng khác ñến • Ngăn sự tác ñộng từ ñối tượng khác ñến dữ liệu. 27 Ẩn thông tin là 1 tính chất của bao gói 28 Tính bao góiTính bao gói ((tttt)) – Thể hiện sự kết hợp chặc chẽ giữa thuộc tính và phương thức. – ðịnh nghĩa lớp: là việc ñóng gói nhiều thành phần lại với nhau . phần lại với nhau . – Xác ñịnh và giới hạn các ñường truy cập ñến lớp. 29 Tính bao góiTính bao gói ((tttt)) – Các thuộc tính truy cập: – Dùng chung (public): có quyền ñược truy xuất từ bất kỳ vị trí nào. – Dùng riêng (private): chỉ truy xuất ñược từ bên trong lớp ( trong các phương thức của lớp ñó ). trong lớp ( trong các phương thức của lớp ñó ). – ðược bảo vệ (protected): chỉ truy xuất ñược từ bên trong lớp và các lớp thừa kế từ nó. 30 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế (inheritance) – Nhóm các ñặc tính chung lại với nhau. – Sử dụng lại (kế thừa) các ñặc trưng chung (thuộc tính + phương thức) của 1 lớp cho trước . trước . – Ích lợi: • Chia sẻ và sử dụng lại những lớp ñã có: – Tận dụng lại các thuộc tính chung. – Tận dụng lại các thao tác tương tự. • Thiết kế lớp gọn nhẹ, ñơn giản hơn. 31 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế (tt) – Chú ý: tránh thiết kế sai về mặt ý nghĩa. VD: Lớp XeHơi thừa kế từ lớp BánhXe là SAI. – Lớp con phải chính là lớp cha , ngoài ra còn – Lớp con phải chính là lớp cha , ngoài ra còn phải có thêm những ñặc trưng riêng của nó: • Thêm hàm hoặc thêm thuộc tính • Tái ñịnh nghĩa hàm của lớp cha, ñổi kiểu thuộc tính • Dùng hàm ảo 32 Con Con ngườingười – Tên – Giới tính SinhSinh viênviên – Lớp học – ðiểm thi Toán + Tính ñiểm TB() NhânNhân viênviên – Nghề nghiệp – Hệ số lương + Nghỉ phép() 33 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế (tt) – Lớp con sẽ có tất cả các thành phần của lớp cha nhưng chỉ ñược quyền truy xuất thành phần mà lớp cha cho phép ( public + protected ). protected ). – Lớp cha không thể truy xuất ñược thành phần của lớp con. 34 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế (tt) – Các thành phần của lớp con sẽ che ñi các thành phần trùng tên trong lớp cha. • Khi truy xuất thành phần trùng tên ñó sẽ truy xuất thành phần của lớp con. thành phần của lớp con. • Muốn truy xuất thành phần của lớp cha, phải chỉ rõ. – Trong C++: <Tên lớp cha> :::: <Tên hàm> – Trong Java: super <Tên hàm> 35 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế – Thừa kế ñơn: thừa kế từ 1 lớp – Thừa kế bội: thừa kế từ 2 lớp trở lên. • Tận dụng ñược nhiều thành phần có sẵn . • Tận dụng ñược nhiều thành phần có sẵn . • Dễ gây ra xung ñột, cạnh tranh. 36 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Tính thừa kế (tt) – Thừa kế bội 37 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Ảo hóa (virtualization) – Kể tên trong lớp cha một ứng xử chung (hàm ảo – virtual, abstract) cho tập hợp các lớp con. – Khi nhận yêu cầu, tùy vào ñối tượng thuộc lớp nào sẽ có ứng xử riêng (thực thi hàm tương ứng của lớp ñó). 38 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Ảo hóa Vd: 1. “V”: cho tập hợp các ñối tượng hình học (ñiểm, ñường thẳng, hình tròn, hình vuông, …) 2. “ Kêu ”: cho tập hợp các con vật ( chó , mèo , gà , 2. “ Kêu ”: cho tập hợp các con vật ( chó , mèo , gà , vịt, …) 3. “V nhà”: cho tập hợp các học sinh (ñi bộ, ñi xe ñạp, ñi xe gắn máy, ñi xe buýt, …) 39 CácCác ñặcñặc ñiểmñiểm củacủa OOPOOP • Ảo hóa – Hàm ảo: • Không nhất thiết phải cần ñịnh nghĩa ở lớp cha. • Phải ñược ñịnh nghĩa lại trong lớp con. – Lớp ảo : – Lớp ảo : • Chỉ dùng khai báo các hàm ảo bên trong. • Không ñược dùng ñể tạo ra ñối tượng. 40 [...]... là 32 Nên theo quy cách ñ t tên x, hoten, a1, num_of_var, Delta, TEN, 3 Tên ki u Kích thư c char 1 byte - 128 unsigned char 1 byte 0 int 2 bytes - 327 68 unsigned int • Tên Vd: Các khái ni m cơ b n • Ki u d li u Vd : char, int, return, for, else, const, static – – – – 2 Ph m vi 2 bytes 0 65535 short 2 bytes 0 65535 31 long 4 bytes -2 unsigned long 4 bytes 0 float 4 bytes 1.2e double 8 bytes 2. 2e 127 25 5... c nh h c t i trư ng? NhanVien Mã nhân viên – H và tên – Năm sinh –… 24 – 23 OOP Các ñ c ñi m c a OOP • Tính bao gói • Tính th a k • o hóa • ða hình 25 26 Tính bao gói • Là ñ c ñi m ch y u c a OOP • Che gi u vi c th c thi chi ti t c a 1 ñ i tư ng • Ngăn s tác ñ ng t ñ i tư ng khác ñ n d li u n thông tin là 1 tính ch t c a bao gói 27 28 Tính bao gói (tt) tt) Tính bao gói (tt) tt) – Các thu c tính truy... 1 câu l nh – if (bi u th c) } • Giá tr c a bi u th c ñi u ki n – B ng 0 : SAI – Khác 0 : ñúng Vd: int x=0; if(x= =2) cout . NVANVA Ths Tin học – ðH Tây ðô – 3.04 – Giảng viên NVA.nghỉNVA.nghỉ phépphép (22 /9 /20 09) (22 /9 /20 09) 19 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng • Một số khái. NVANVA Ths Tin học – ðH Tây ðô – 3.04 – Giảng viên NVA.nghỉNVA.nghỉ phépphép (22 /9 /20 09) (22 /9 /20 09) 19 LậpLập trìnhtrình hướnghướng ñốiñối tượngtượng • Một số khái

Ngày đăng: 19/03/2014, 04:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan