Lập trình C++ - Chương 6: Lập trình hướng đối tượng

Hướng đối tượng (object orientation) cung cấp một kiểu mới đểxây dựng

phần mềm. Trong kiểu mới này, các đối tượng (object) và các lớp(class) là

những khối xây dựngtrongkhi các phương thức (method), thông điệp

(message), và sựthừa kế(inheritance) cung cấp các cơchếchủyếu.

Lập trình hướng đối tượng(OOP- Object-Oriented Programming) là

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. Thuật ngữOOP ngày càng trởnên thông dụng trong lĩnh vực công

nghệthông tin.

pdf12 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 1723 | Lượt tải: 1download
Tóm tắt nội dung Lập trình C++ - Chương 6: Lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 
thuộc tính thể hiện này đều giữ cùng một giá trị. Trong những trường hợp như 
thế bạn có thể định nghĩa một thuộc tính lớp để chứa đựng số lượng bánh 
răng của xe đạp.Tất cả các thể hiện của lớp Xedap sẽ chia thuộc tính này. Một 
lớp cũng có thể khai báo các phương thức lớp (class methods). Bạn có thể 
triệu gọi một phương thức lớp trực tiếp từ lớp nhưng ngược lại bạn phải triệu 
gọi các phương thức thể hiện từ một thể hiện cụ thể nào đó. 
Chương 6: Lập trình hướng đối tượng 81 
Hình 6.5 Lớp và thể hiện của lớp 
Khái niệm 6.
6.5. T
C
g
Khái niệm 6.
t
m
g
c
Chương 6: L 
6 
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ới 
cá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ện của 
p. lớ
 Phương thức lớp (class method) là một phương thứ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 ảnh hưởng đến toàn bộ 
lớp chứ không ảnh hưởng đến một lớp riêng rẽ nào. 
huộc tính (Attribute) 
ác thuộc tính trình bày trạng thái của đối tượng. Các thuộc tính nắm giữ các 
iá trị dữ liệu trong một đối tượng, chúng định nghĩa một đối tượng đặc thù. 
7 
Thuộc tính (attribute) là dữ liệu trình bày các đặc điểm 
về một đối tượng. 
Một thuộc tính có thể được gán một giá trị chỉ sau khi một đối tượng dựa 
rên lớp ấy được tạo ra. Một khi các thuộc tính được gán giá trị chúng mô tả 
ột đối tượng. Mọi đối tượng của một lớp phải có cùng các thuộc tính nhưng 
iá trị của các thuộc tính thì có thể khác nhau. Một thuộc tính của đối tượng 
ó thể nhận các giá trị khác nhau tại những thời điểm khác nhau. 
ập trình hướng đối tượng 82 
6.6. Phương thức (Method) 
Các phương thức thực thi các hoạt động của đối tượng. Các phương thức là 
nhân tố làm thay đổi các thuộc tính của đối tượng. 
Khái niệm 6.8 
Phương thức (method) có liên quan tới những thứ mà đối 
tượng có thể làm. Một phươ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ộc tính). 
 Các phương thức xác định cách thức hoạt động của một đối tượng và 
được thực thi khi đối tượng cụ thể được tạo ra.Ví dụ, các hoạt động chung của 
một đối tượng thuộc lớp Chó là sủa, vẫy tai, chạy, và ăn. Tuy nhiên, chỉ khi 
một đối tượng cụ thể thuộc lớp Chó được tạo ra thì các phương thức sủa, vẫy 
tai, chạy, và ăn mới được thực thi. 
 Các phương thức mang lại một cách nhìn khác về đối tượng. Khi bạn 
nhìn vào đối tượng Cửa ra vào bên trong môi trường của bạn (môi trường thế 
giới thực), một cách đơn giản bạn có thể thấy nó là một đối tượng bất động 
không có khả năng suy nghỉ. Trong tiếp cận hướng đối tượng cho phát triển 
hệ thống, Cửa ra vào có thể được liên kết tới phương thức được giả sử là có 
thể được thực hiện. Ví dụ, Cửa ra vào có thể mở, nó có thể đóng, nó có thể 
khóa, hoặc nó có thể mở khóa. Tất cả các phương thức này gắn kết với đối 
tượng Cửa ra vào và được thực hiện bởi Cửa ra vào chứ không phải một đối 
tượng nào khác. 
6.7. Thông điệp (Message) 
Một chương trình hay ứng dụng lớn thường chứa nhiều đối tượng khác nhau. 
Các đối tượng phần mềm tương tác và giao tiếp với nhau bằng cách gởi các 
thông điệp (message). Khi đối tượng A muốn đối tượng B thực hiện các 
phương thức của đối tượng B thì đối tượng A gởi một thông điệp tới đối 
tượng B. 
 Ví dụ đối tượng người đi xe đạp muốn đối tượng xe đạp thực hiện 
phương thức chuyển đổi bánh răng của nó thì đối tượng người đi xe đạp cần 
phải gởi một thông điệp tới đối tượng xe đạp. 
 Đôi khi đối tượng nhận cần thông tin nhiều hơn để biết chính xác thực 
hiện công việc gì. Ví dụ khi bạn chuyển bánh răng trên chiếc xe đạp của bạn 
thì bạn phải chỉ rõ bánh răng nào mà bạn muốn chuyển. Các thông tin này 
được truyền kèm theo thông điệp và được gọi là các tham số (parameter). 
Chương 6: Lập trình hướng đối tượng 83 
Một thông điệp gồm có: 
ƒ Đối tượng nhận thông điệp 
ƒ Tên của phương thức thực hiện 
ƒ Các tham số mà phương thức cần 
Khái niệm 6.9 
Một thông điệp (message) là một lời yêu cầu một hoạt động. 
Một thông điệp được truyền khi một đối tượng triệu gọi một 
hay nhiều phương thức của đối tượng khác để yêu cầu thông 
tin. 
 Khi một đối tượng nhận được một thông điệp, nó thực hiện một phương 
thức tương ứng. Ví dụ đối tượng xe đạp nhận được thông điệp là chuyển đổi 
bánh răng nó sẽ thực hiện việc tìm kiếm phương thức chuyển đổi bánh răng 
tương ứng và thực hiện theo yêu cầu của thông điệp mà nó nhận được. 
6.8. Tính bao gói (Encapsulation) 
Trong đối tượng xe đạp, giá trị của các thuộc tính được chuyển đổi bởi các 
phương thức. Phương thức changeGear() chuyển đổi giá trị của thuộc tính 
currentGear. Thuộc tính speed được chuyển đổi bởi phương thức 
changeGear() hoặc changRpm(). 
 Trong OOP thì các thuộc tính là trung tâm, là hạt nhân của đối tượng. 
Các phương thức bao quanh và che giấu đi hạt nhân của đối tượng từ các đối 
tượng khác trong chương trình.Việc bao gói các thuộc tính của một đối tượng 
bên trong sự che chở của các phương thức của nó được gọi là sự đóng gói 
(encapsulation) hay là đóng gói dữ liệu. 
 Đặc tính đóng gói dữ liệu là ý tưởng của các nhà thiết các hệ thống 
hướng đối tượng. Tuy nhiên, việc áp dụng trong thực tế thì có thể không hoàn 
toàn như thế. Vì những lý do thực tế mà các đối tượng đôi khi cần phải phơi 
bày ra một vài thuộc tính này và che giấu đi một vài phương thức kia. Tùy 
thuộc vào các ngôn ngữ lập trình hướng đối tượng khác nhau, chúng ta có các 
điều khiển các truy xuất dữ liệu khác nhau. 
Khái niệm 6.10 
Đóng gói (encapsulation) là tiến trình che giấu việc thực thi 
chi tiết của một đối tượng. 
 Một đối tượng có một giao diện chung cho các đối tượng khác sử dụng 
để giao tiếp với nó. Do đặc tính đóng gói mà các chi tiết như: các trạng thái 
Chương 6: Lập trình hướng đối tượng 84 
được lưu trữ như thế nào hay các hành động được thi công ra sao có thể được 
che giấu đi từ các đối tượng khác. Điều này có nghĩa là các chi tiết riêng của 
đối tượng có thể được chuyển đổi mà hoàn toàn không ảnh hưởng tới các đối 
tượng khác có liên hệ với nó. Ví dụ, một người đi xe đạp không cần biết 
chính xác cơ chế chuyển bánh răng trên xe đạp thực sự làm việc như thế nào 
nhưng vẫn có thể sử dụng nó. Điều này được gọi là che giấu thông tin. 
Khái niệm 6.11 
Che giấu thông tin (information hiding) là việc ẩn đi các chi 
tiết của thiết kế hay thi công từ các đối tượng khác. 
6.9. Tính thừa kế (Inheritance) 
Hệ thống hướng đối tượng cho phép các lớp được định nghĩa kế thừa từ các 
lớp khá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. Như vậy ta có thể nói lớp xe đạp là lớp cha (superclass) của 
lớp xe đạp leo núi và xe đạp đua. 
Khái niệm 6.12 
Thừa kế (inheritance) nghĩa là các hành động (phương thức) và 
các thuộc tính được định nghĩa trong một lớp có thể được thừa 
kế hoặc được sử dụng lại bởi lớp khác. 
Khái niệm 6.13 
Lớp cha (superclass) là lớp có các thuộc tính hay hành động 
được thừa hưởng bởi một hay nhiều lớp khác. 
Lớp con (subclass) là lớp thừa hưởng một vài đặc tính chung 
của lớp cha và thêm vào những đặc tính riêng khác. 
 Các lớp con thừa kế thuộc tính và hành động từ lớp cha của chúng. Ví dụ, 
một xe đạp leo núi không những có bánh răng, số vòng quay trên phút và tốc 
độ giống như mọi xe đạp khác mà còn có thêm một vài loại bánh răng vì thế 
mà nó cần thêm một thuộc tính là gearRange (loại bánh răng). 
 Các lớp con có thể định nghĩa lại các phương thức được thừa kế để cung 
cấp các thi công riêng biệt cho các phương thức này. Ví dụ, một xe đạp leo 
núi sẽ cần một phương thức đặc biệt để chuyển đổi bánh răng. 
Chương 6: Lập trình hướng đối tượng 85 
 Các lớp con cung cấp các phiên bản đặc biệt của các lớp cha mà không 
cần phải định nghĩa lại các lớp mới hoàn toàn. Ở đây, mã lớp cha có thể được 
sử dụng lại nhiều lần. 
6.10.Tính đa hình (Polymorphism) 
Một khái niệm quan trọng khác có liên quan mật thiết với truyền thông điệp 
là đa hình (polymorphism). Với đa hình, nếu cùng một hành động (phương 
thức) ứng dụng cho các đối tượng thuộc các lớp khác nhau thì có thể đưa đến 
những kết quả khác nhau. 
Khái niệm 6.14 
Đa hình (polymorphism) nghĩa là “nhiều hình thức”, hành động 
cù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.
 Chúng ta hãy xem xét các đối tượng Cửa Sổ và Cửa Cái. Cả hai đối 
tượng có một hành động chung có thể thực hiện là đóng. Nhưng một đối 
tượng Cửa Cái thực hiện hành động đó có thể khác với cách mà một đối 
tượng Cửa Sổ thực hiện hành động đó. Cửa Cái khép cánh cửa lại trong khi 
Cửa Sổ hạ các thanh cửa xuống. Thật vậy, hành động đóng có thể thực hiện 
một trong hai hình thức khác nhau. Một ví dụ khác là hành động hiển thị. Tùy 
thuộc vào đối tượng tác động, hành động ấy có thể hiển thị một chuỗi, hoặc 
vẽ một đường thẳng, hoặc là hiển thị một hình. 
 Đa hình có sự liên quan tới việc truyền thông điệp. Đối tượng yêu cầu 
cần biết hành động nào để yêu cầu và yêu cầu từ đối tượng nào. Tuy nhiên 
đối tượng yêu cầu không cần lo lắng về một hành động được hoàn thành như 
thế nào. 
Bài tập cuối chương 6 
6.1 Trình bày các định nghĩa của các thuật ngữ: 
ƒ Lập trình hướng đối tượng 
ƒ Trừu tượng hóa 
ƒ Đối tượng 
ƒ Lớp 
ƒ Thuộc tính 
ƒ Phương thức 
ƒ Thông điệp 
Chương 6: Lập trình hướng đối tượng 86 
6.2 Phân biệt sự khác nhau giữa lớp và đối tượng, giữa thuộc tính và giá trị, giữa 
thông điệp và truyền thông điệp. 
6.3 Trình bày các đặc điểm của OOP. 
6.4 Những lợi ích có được thông qua thừa kế và bao gói. 
6.5 Những thuộc tính và phương thức cơ bản của một cái máy giặt. 
6.6 Những thuộc tính và phương thức cơ bản của một chiếc xe hơi. 
6.7 Những thuộc tính và phương thức cơ bản của một hình tròn. 
6.8 Chỉ ra các đối tượng trong hệ thống rút tiền tự động ATM. 
6.9 Chỉ ra các lớp có thể kế thừa từ lớp điện thoại, xe hơi, và động vật. 
Chương 6: Lập trình hướng đối tượng 87 

File đính kèm:

  • pdfC++Chuong_06.pdf