21
6.1 L L p Tr p Tr ì ì nh Hư nh Hư ng Đ ng Đ i Tư i Tư ng ng (Object (Object - - oriented Programming) oriented Programming) Mc tiêu Gii thiu nhng khái nimcơ bn trong lp trình hướng đốitượng Ni dung Trutượng hóa, đốitượng, lp Thuc tính và phương thc Thông đip và truyn thông đip Tính bao gói, tính kế tha, tính đa hình

Bai Giang 9

  • Upload
    nbb3i

  • View
    3.107

  • Download
    3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Bai Giang 9

6.1

LLậập Trp Trìình Hưnh Hướớng Đng Đốối Tưi Tượợngng(Object(Object--oriented Programming)oriented Programming)Mục tiêu

Giới thiệu những khái niệm cơ bản trong lậptrình hướng đối tượng

Nội dungTrừu tượng hóa, đối tượng, lớpThuộc tính và phương thứcThông điệp và truyền thông điệpTính bao gói, tính kế thừa, tính đa hình

Page 2: Bai Giang 9

6.2

KhKhááii NiNiệệmmLập trình hướng đối tượng (OOP- Object-Oriented Programming)

một cách tư duy mới, tiếp cận hướng đối tượng đểgiải quyết vấn đề bằng máy tính.một phương pháp thiết kế và phát triển phần mềmdựa trên kiến trúc lớp và đối tượng.

Quá trình tiến hóa của OOP1. Lập trình tuyến tính2. Lập trình có cấu trúc3. Sự trừu tượng hóa dữ liệu4. Lập trình hướng đối tượng

Page 3: Bai Giang 9

6.3

TTạạii Sao Sao TiTiếếpp CCậậnn HưHướớngng ĐĐốốii TưTượợngng??

Loại bỏ những thiếu sót của tiếp cận theo thủtụcTrong OOP

Dữ liệu được xem như một phần tử chính yếu và được bảo vệHàm gắn kết với dữ liệu, thao tác trên dữ liệuPhân tách bài toán thành nhiều thực thể (đối tượng)

xây dựng dữ liệu + hàm cho các đối tượng này.Tăng cường khả năng sử dụng lại

Page 4: Bai Giang 9

6.4

ĐĐặặc Đic Điểểm Quan Trm Quan TrọọngngNhấn mạnh trên dữ liệu hơn là thủ tụcCác chương trình được chia thành các đối tượngDữ liệu được che giấu và không thể được truy xuất từ các hàm bên ngoàiCác đối tượng có thể giao tiếp với nhau thông qua các hàmDữ liệu hay các hàm mới có thể được thêm vào khi cầnTheo tiếp cận từ dưới lên

Page 5: Bai Giang 9

6.5

ThuThuậận Ln LợợiiSo với các tiếp cận cổ điển thì OOP cónhững thuận lợi sau:

OOP cung cấp một cấu trúc module rõ ràng Giao diện được định nghĩa tốtNhững chi tiết cài đặt được ẩn

OOP giúp lập trình viên duy trì mã và sửa đổi mã tồn tại dễ dàng (các đối tượng được tạo ra với những khác nhau nhỏ so với những đối tượng tồn tại).OOP cung cấp một framework tốt với các thư viện mã mà các thành phần có thể được chọn và sửa đổi bởi lập trình viên.

Page 6: Bai Giang 9

6.6

TrTrừừuu TưTượợngng HHóóaa(Abstraction)(Abstraction)

Trừu tượng hóaPhân biệt cần thiết với chi tiết

Giao diện – Cài đặtCái gì – Thế nàoPhân tích – Thiết kế

Các kỹ thuật trừu tượngĐóng gói (encapsulation)Ẩn thông tin (information hiding)Thừa kế (inheritance)Đa hình (polymorphism)

Page 7: Bai Giang 9

6.7

ĐĐốối Tưi Tượợngng (Object)(Object)Đối tượng làchìa khóa để hiểuđược kỹ thuậthướng đối tượngTrong hệ thốnghướng đối tượng, mọi thứ đều là đốitượng

Viết một chương trình hướng đối tượng nghĩa là đang xây dựngmột mô hình của một vài bộ phận trong thế giới thực

Page 8: Bai Giang 9

6.8

ĐĐốốii TưTượợngng ThThếế GiGiớớii ThThựựcc(Real Object)(Real Object)

Một đối tượng thế giới thực là một thựcthể cụ thể mà thông thường bạn có thể sờ, nhìn thấy hay cảm nhận được.

Tất cả cótrạng thái(state) vàhành động(behaviour)

Page 9: Bai Giang 9

6.9

ĐĐốốii TưTượợngng PhPhầầnn MMềềmm(Software Object)(Software Object)

Các đối tượng phần mềm có thể đượcdùng để biểu diễn các đối tượng thế giớithực.

Cũng có trạng thái vàhành động

Trạng thái: thuộc tính(attribute; property)Hành động: phương thức(method)

Page 10: Bai Giang 9

6.10

ĐĐốốii TưTượợngng

Đối tượng (object) là mộtthực thể phần mềm baobọc các thuộc tính vàcác phương thức liênquan.

Đối tượng phần mềm Đối tượng phần mềm Xe Đạp

Thuộc tính được xác địnhbởi giá trị cụ thể gọi làthuộc tính thể hiện. Một đối tượng cụ thểđược gọi là một thể hiện.

Page 11: Bai Giang 9

6.11

LLớớpp (Class)(Class)Trong thế giới thực có nhiều đối tượng cùng loại.Chương trình hướng đối tượng có nhiều đốitượng cùng loại chia sẻ những đặc điểm chung.Ví dụ

Page 12: Bai Giang 9

6.12

LLớớpp LLàà GGìì??Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu

Ví dụ: lớp XeDap là một thiết kế chung cho nhiều đối tượng xeđạp được tạo ra

Lớp định nghĩa các thuộc tính và các phương thức chungcho tất cả các đối tượng của cùng một loại nào đóMột đối tượng là một thể hiện cụ thể của một lớp.

Ví dụ: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap

Mỗi thể hiện có thể có những thuộc tính thể hiện khácnhau

Ví dụ: một xe đạp có thể đang ở bánh răng thứ 5 trong khi một xekhác có thể là đang ở bánh răng thứ 3.

Page 13: Bai Giang 9

6.13

VVíí DDụụ LLớớpp XeXe ĐĐạạpp

Khai báo cho lớpXeDap

Đối tượng của lớpXeDap

Page 14: Bai Giang 9

6.14

ThuThuộộcc TTíínhnh LLớớpp& & PhươngPhương ThThứứcc LLớớpp

Page 15: Bai Giang 9

6.15

ThuThuộộcc TTíínhnh LLớớpp& & PhươngPhương ThThứứcc LLớớpp

Thuộc tính lớp (class attribute) là một hạng mục dữliệu liên kết với một lớp cụ thể mà không liên kết vớicác thể hiện của lớp. Nó được định nghĩa bên trongđịnh nghĩa lớp và được chia sẻ bởi tất cả các thể hiệncủa lớp.Phương thức lớp (class method) là một phươngthức được triệu gọi mà không tham khảo tới bất kỳmột đối tượng nào. Tất cả các phương thức lớp ảnhhưởng đến toàn bộ lớp chứ không ảnh hưởng đếnmột lớp riêng rẽ nào.

Page 16: Bai Giang 9

6.16

ThuThuộộcc TTíínhnh& & PhươngPhương ThThứứcc

Thuộc tính (attribute) là dữ liệu trình bàycác đặc điểm về một đối tượng. Phương thức (method) có liên quan tớinhững thứ mà đối tượng có thể làm. Mộtphương thức đáp ứng một chức năng tácđộng lên dữ liệu của đối tượng (thuộctính).

Page 17: Bai Giang 9

6.17

ThôngThông ĐiĐiệệpp& & TruyTruyềềnn ThôngThông ĐiĐiệệpp

Thông điệp (message) là một lời yêu cầumột hoạt động. Gồm có:Đối tượng nhận thông điệpTên của phương thức thực hiệnCác tham số mà phương thức cần

Truyền thông điệp: một đối tượng triệugọi một hay nhiều phương thức của đốitượng khác để yêu cầu thông tin.

Page 18: Bai Giang 9

6.18

TTíínhnh BaoBao GGóóii(Encapsulation)(Encapsulation)

Đóng gói (encapsulation) là tiến trình chegiấu việc thực thi chi tiết của một đốitượng.

Page 19: Bai Giang 9

6.19

ẨẨnn ThôngThông TinTin(Information Hiding)(Information Hiding)

Đóng gói Thuộc tính được lưu trữhay phương thức được cài đặt như thếnào được che giấu đi từ các đốitượng khác

Việc che giấu những chi tiết thiết kế và cài đặt từnhững đối tượng khácđược gọi là ẩn thông tin

Page 20: Bai Giang 9

6.20

TTíínhnh ThThừừaa KKếế(Inheritance) (Inheritance)

Hệ thống hướng đối tượng cho phép cáclớp được định nghĩa kế thừa từ các lớpkhác

Ví dụ, lớp xe đạp leo núi và xe đạp đua lànhững lớp con (subclass) của lớp xe đạp.

Thừa kế nghĩa là các phương thức và cácthuộc tính được định nghĩa trong một lớpcó thể được thừa kế hoặc được sử dụnglại bởi lớp khác.

Page 21: Bai Giang 9

6.21

TTíínhnh ĐaĐa HHììnhnh(Polymorphism) (Polymorphism)

Đa hình: “nhiều hình thức”, hành độngcùng tên có thể được thực hiện khác nhauđối với các đối tượng/các lớp khác nhau. Ngữ cảnh khác kết quả khác

Đường Thẳng Hình TrònĐiểm Hình Vuông

Vẽ