Tải bản đầy đủ (.ppt) (20 trang)

Tìm hiểu một số vấn đề cơ bản trong hướng đối tượng: Đóng gói dữ liệu, ẩn dấu thông tin, kế thừa, đa hình. pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (205.47 KB, 20 trang )

Báo cáo bài tập nhóm
Báo cáo bài tập nhóm
Tìm hiểu một số vấn đề cơ bản trong
Tìm hiểu một số vấn đề cơ bản trong
hướng đối tượng:
hướng đối tượng:
Đóng gói dữ liệu, ẩn dấu thông tin, kế
Đóng gói dữ liệu, ẩn dấu thông tin, kế
thừa, đa hình
thừa, đa hình
1. Đóng gói dữ liệu
1. Đóng gói dữ liệu

Tính chất này không cho phép người sử dụng
Tính chất này không cho phép người sử dụng
các đối tượng thay đổi trạng thái nội tại của
các đối tượng thay đổi trạng thái nội tại của
một đối tượng. Chỉ có các phương thức nội tại
một đối tượng. Chỉ có các phương thức nội tại
của đối tượng cho phép thay đổi trạng thái của
của đối tượng cho phép thay đổi trạng thái của
nó.
nó.

Việc cho phép môi trường bên ngoài tác động
Việc cho phép môi trường bên ngoài tác động
lên các dữ liệu nội tại của một đối tượng theo
lên các dữ liệu nội tại của một đối tượng theo
cách nào là hoàn toàn tùy thuộc vào người viết
cách nào là hoàn toàn tùy thuộc vào người viết



1. Đóng gói dữ liệu (contd)
1. Đóng gói dữ liệu (contd)

Đóng gói đảm bảo sự toàn vẹn của
Đóng gói đảm bảo sự toàn vẹn của
đối tượng.
đối tượng.

Tính đóng gói cho phép dấu thông
Tính đóng gói cho phép dấu thông
tin của đối tượng bằng cách kết hợp
tin của đối tượng bằng cách kết hợp
thông tin và các phương thức liên
thông tin và các phương thức liên
quan đến thông tin trong đối tượng.
quan đến thông tin trong đối tượng.
1. Đóng gói dữ liệu (contd)
1. Đóng gói dữ liệu (contd)

Đóng gói dữ liệu luôn được tổ chức thành
Đóng gói dữ liệu luôn được tổ chức thành
các thuộc tính của lớp đối tượng. Việc
các thuộc tính của lớp đối tượng. Việc
truy nhập dữ liệu phải thông qua các
truy nhập dữ liệu phải thông qua các
phương thức của đối tượng.
phương thức của đối tượng.

Đóng gói dữ liệu để hạn chế sự truy nhập

Đóng gói dữ liệu để hạn chế sự truy nhập
tự do vào dữ liệu không quản lý được.
tự do vào dữ liệu không quản lý được.
1. Đóng gói dữ liệu (contd)
1. Đóng gói dữ liệu (contd)

Việc đóng gói dữ liệu được thực hiện
Việc đóng gói dữ liệu được thực hiện
theo phương pháp trừu tượng hóa đối
theo phương pháp trừu tượng hóa đối
tượng thành lớp từ thấp lên cao như
tượng thành lớp từ thấp lên cao như
sau:
sau:
1. Thu thập các thuộc tính của mỗi đối
1. Thu thập các thuộc tính của mỗi đối
tượng, gắn các thuộc tính vào đối
tượng, gắn các thuộc tính vào đối
tượng tương ứng.
tượng tương ứng.
1. Đóng gói dữ liệu (contd)
1. Đóng gói dữ liệu (contd)
2.Nhóm các đối tượng có các thuộc tính tương
2.Nhóm các đối tượng có các thuộc tính tương
tự nhau thành nhóm, loại bỏ bớt các thuộc
tự nhau thành nhóm, loại bỏ bớt các thuộc
tính cá biệt chỉ giữ lại các thuộc tính chung
tính cá biệt chỉ giữ lại các thuộc tính chung
nhất.
nhất.

3. Đóng gói dữ liệu của các đối tượng vào lớp
3. Đóng gói dữ liệu của các đối tượng vào lớp
tương ứng. Mỗi thuộc tính của đối tượng trở
tương ứng. Mỗi thuộc tính của đối tượng trở
thành một thuộc tính của lớp tương ứng.
thành một thuộc tính của lớp tương ứng.
1. Đóng gói dữ liệu (contd)
1. Đóng gói dữ liệu (contd)
4. Việc truy nhập dữ liệu được thực hiện thông
4. Việc truy nhập dữ liệu được thực hiện thông
qua các phương thức được trang bị cho lớp.
qua các phương thức được trang bị cho lớp.
Không được truy nhập trực tiếp đến dữ liệu.
Không được truy nhập trực tiếp đến dữ liệu.
5. Khi có thay đổi trong dữ liệu của đối tượng,
5. Khi có thay đổi trong dữ liệu của đối tượng,
ta chỉ cần thay đổi các phương thức truy
ta chỉ cần thay đổi các phương thức truy
nhập thuộc tính của lớp mà không cần phải
nhập thuộc tính của lớp mà không cần phải
thay đổi mã nguồn của các chương trình sử
thay đổi mã nguồn của các chương trình sử
dụng lớp trưu tượng.
dụng lớp trưu tượng.
2. Ẩn dấu thông tin
2. Ẩn dấu thông tin

Tính chất này không cho phép người
Tính chất này không cho phép người
sử dụng các đối tượng thay đổi

sử dụng các đối tượng thay đổi
trạng thái nội tại của một đối tượng
trạng thái nội tại của một đối tượng

Chỉ có các phương thức nội tại của
Chỉ có các phương thức nội tại của
đối tượng cho phép thay đổi trạng
đối tượng cho phép thay đổi trạng
thái của nó.
thái của nó.
2. Ẩn dấu thông tin (contd)
2. Ẩn dấu thông tin (contd)

Yêu cầu:
Yêu cầu:


_ Thiết kế mô-đun theo cách
_ Thiết kế mô-đun theo cách
mà các khả năng thay đổi được ẩn
mà các khả năng thay đổi được ẩn


_ Thay đổi không thể ảnh
_ Thay đổi không thể ảnh
hưởng đến các module khác
hưởng đến các module khác

Ví dụ trong C + +
Ví dụ trong C + +

kiểu dữ liệu trừu
kiểu dữ liệu trừu
tượng được thực
tượng được thực
hiện với các thông
hiện với các thông
tin ẩn:
tin ẩn:
3. Thừa kế
3. Thừa kế

Tính kế thừa là khả năng cho phép ta
Tính kế thừa là khả năng cho phép ta
xây dựng một lớp mới dựa trên các
xây dựng một lớp mới dựa trên các
định nghĩa của một lớp đã có.
định nghĩa của một lớp đã có.

Lớp đã có gọi là lớp Cha, lớp mới phát
Lớp đã có gọi là lớp Cha, lớp mới phát
sinh gọi là lớp Con và đương nhiên kế
sinh gọi là lớp Con và đương nhiên kế
thừa tất cả các thành phần của lớp Cha
thừa tất cả các thành phần của lớp Cha
3. Thừa kế (contd)
3. Thừa kế (contd)

Ta có thể mở rộng công năng các
Ta có thể mở rộng công năng các
thành phần kế thừa cũng như bổ

thành phần kế thừa cũng như bổ
sung thêm các thành phần mới.
sung thêm các thành phần mới.

Đặc tính này cho phép một đối tượng
Đặc tính này cho phép một đối tượng
có thể có sẵn các đặc tính mà đối
có thể có sẵn các đặc tính mà đối
tượng khác đã có thông qua kế thừa.
tượng khác đã có thông qua kế thừa.
3. Thừa kế (contd)
3. Thừa kế (contd)

Cho phép các đối tượng chia sẻ hay
Cho phép các đối tượng chia sẻ hay
mở rộng các đặc tính sẵn có mà
mở rộng các đặc tính sẵn có mà
không phải tiến hành định nghĩa lại.
không phải tiến hành định nghĩa lại.

Tuy nhiên, không phải ngôn ngữ
Tuy nhiên, không phải ngôn ngữ
định hướng đối tượng nào cũng có
định hướng đối tượng nào cũng có
tính chất này.
tính chất này.
3. Thừa kế (contd)
3. Thừa kế (contd)

Phân biệt hai loại quan hệ :

Phân biệt hai loại quan hệ :
_ Là – một :
_ Là – một :


Biểu thị tính kế thừa. Trong quan
Biểu thị tính kế thừa. Trong quan
hệ “ là – một", một đối tượng
hệ “ là – một", một đối tượng
của lớp Con được xem như là một
của lớp Con được xem như là một
đối tượng của lớp Cha.
đối tượng của lớp Cha.
3. Thừa kế (contd)
3. Thừa kế (contd)
_ Có – một:
_ Có – một:


Quan hệ này mang ý nghĩa gồm
Quan hệ này mang ý nghĩa gồm
có. Trong quan hệ "có – một",
có. Trong quan hệ "có – một",
một đối tượng có thể có một
một đối tượng có thể có một
hoặc nhiều thành phần tham
hoặc nhiều thành phần tham
chiếu đến các đối tượng khác.
chiếu đến các đối tượng khác.
4. Đa hình

4. Đa hình

Là tính chất thể hiện nhiều hình thái của
Là tính chất thể hiện nhiều hình thái của
đối tượng.
đối tượng.

Các đối tượng khác nhau có thể có cùng
Các đối tượng khác nhau có thể có cùng
phương thức thực thi cùng một hành động.
phương thức thực thi cùng một hành động.
Nhưng mỗi đối tượng lại thực thi hành
Nhưng mỗi đối tượng lại thực thi hành
động theo cách riêng của mình, mà không
động theo cách riêng của mình, mà không
giống nhau cho tất cả các đối tượng.
giống nhau cho tất cả các đối tượng.
4. Đa hình (contd)
4. Đa hình (contd)

Thể hiện thông qua việc gửi các
Thể hiện thông qua việc gửi các
thông điệp
thông điệp

Việc gửi các thông điệp này có
Việc gửi các thông điệp này có
thể so sánh như việc gọi các hàm
thể so sánh như việc gọi các hàm
bên trong của một đối tượng

bên trong của một đối tượng
4. Đa hình (contd)
4. Đa hình (contd)

Các phương thức dùng trả lời cho
Các phương thức dùng trả lời cho
một thông điệp sẽ tùy theo đối
một thông điệp sẽ tùy theo đối
tượng mà thông điệp đó được gửi
tượng mà thông điệp đó được gửi
tới sẽ có phản ứng khác nhau
tới sẽ có phản ứng khác nhau

Tính đa hình hỗ trợ tính đóng gói.
Tính đa hình hỗ trợ tính đóng gói.
4. Đa hình (contd)
4. Đa hình (contd)

Tính đa hình thể hiện dưới
Tính đa hình thể hiện dưới
nhiều hình thức :
nhiều hình thức :


- Kết nối trễ - Late Binding
- Kết nối trễ - Late Binding


-Nạp chồng – Overloading
-Nạp chồng – Overloading



-Ghi chồng – Overriding
-Ghi chồng – Overriding

×