Bài giảng Lập trình hướng đối tượng - Bài 3: Trừu tượng hóa và Đóng gói - Nguyễn Thị Thu Trang
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
VIỆN CNTT & TT
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
IT3100
LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Bài 03. Trừu tượng hóa và Đóng gói
1
Mục tiêu bài học
• Tìm hiểu bản chất, vai trò của trừu tượng hóa
• Khái niệm, các góc nhìn, so sánh lớp và đối tượng
• Tìm hiểu về Đóng gói
• Khái niệm đóng gói, che giấu dữ liệu
• Chỉ định truy cập
• Phương thức getter/setter
• Tìm hiểu cách xây dựng lớp, gói
• Xây dựng lớp trong Java
• Quản lý lớp với package
• Biểu diễn đối tượng, lớp, gói trong UML
2
Nội dung
1. Trừu trượng hóa
2. Đóng gói
3. Xây dựng lớp và gói
3
1/ Trừu tượng hóa
4
1.1 Trừu tượng hóa
• Là một trong 4 nguyên lý cơ bản của lập trình HĐT.
• Là quá trình loại bỏ đi các thông tin ít quan trọng và
giữ lại những thông tin quan trọng, có ý nghĩa với
bài toán.
Hướng đối tượng
• 2 loại trừu tượng hóa
• Trừu tượng hóa điều khiển
• Trừu tượng hóa dữ liệu
5
1.1. Trừu tượng hóa (2)
• Trừu tượng hóa điều khiển:
• Bằng cách sử dụng các chương trình con (subprogram) và
các luồng điều khiển (control flow)
• Ví dụ: a := (1 + 2) * 5
• Nếu không có trừu tượng hóa điều khiển, LTV phải chỉ ra tất cả
các thanh ghi, các bước tính toán mức nhị phân…
• Trừu tượng hóa dữ liệu:
• Xử lý dữ liệu theo các cách khác nhau tùy bài toán
6
1.2. Trừu tượng hóa dữ liệu – Góc nhìn
• Trừu tượng hóa dữ liệu là một cách nhìn hoặc cách
biểu diễn một thực thể chỉ bao gồm các thuộc tính
liên quan trong một ngữ cảnh nào đó.
• Dựa vào các đặc điểm, thuộc tính đó để phân biệt
các thực thể khác nhau trong ngữ cảnh đó.
• Góc nhìn khác nhau (bài toán khác nhau) thì đặc
điểm, thuộc tính dùng để trừu tượng hóa sẽ khác
nhau.
7
Ví dụ: Điện thoại Nokia
• Những thông tin về các "đối tượng" này?
• Tất cả là điện thoại Nokia
• Có loại nắp trượt, có loại nắp gập, có loại dạng bar
• Một số điện thoại là dòng doanh nhân, một số dòng âm nhạc, 3G…
• Bàn phím loại tiêu chuẩn, QWERTY hoặc không có bàn phím
• Màu sắc, chất liệu, kích cỡ… khác nhau
• v.v…
• Tùy bài toán, chỉ “trích rút” lấy những thông tin
quan trọng, phù hợp
8
Ví dụ: Điện thoại Nokia (2)
• Các bài toán khác nhau, yêu cầu mô tả các tính chất
khác nhau về chiếc điện thoại.
Liên quan
âm nhạc
Liên quan
Liên quan
trò chơi
Liên quan
công việc
3G
9
Ví dụ: Điện thoại Nokia (3)
• Có thể trừu tượng hóa nhiều mức.
0
1.3 Lớp
• Lớp (Class) là cách phân loại các đối tượng dựa trên
đặc điểm chung của các đối tượng đó.
• Lớp chính là kết quả của quá trình trừu tượng hóa
dữ liệu.
• Lớp định nghĩa một kiểu dữ liệu mới, trừu tượng hóa
một tập các đối tượng
• Một đối tượng gọi là một thể hiện của lớp
• Lớp gồm các phương thức và thuộc tính chung của
các đối tượng cùng một loại.
11
1.3.1 Thuộc tính
• Thuộc tính
• Một thuộc tính của một lớp là một trạng thái chung
được đặt tên của tất cả các thể hiện của lớp đó có thể
có.
• Ví dụ: Lớp Ô tô có các thuộc tính
• Màu sắc
• Vận tốc
• Các thuộc tính của cũng là các giá trị trừu tượng.
• Mỗi đối tượng có bản sao các thuộc tính của riêng
nó
• Ví dụ: một chiếc Ô tô đang đi có thể có màu đen, vận tốc
60 km/h
12
1.3.2 Phương thức
• Phương thức:
• Xác định các hoạt động chung mà tất cả các thể hiện của
lớp có thể thực hiện được.
• Xác định cách một đối tượng đáp ứng lại một thông điệp
• Thông thường các phương thức sẽ hoạt động trên
các thuộc tính và thường làm thay đổi các trạng
thái của đối tượng.
• Bất kỳ phương thức nào cũng phải thuộc về một lớp nào
đó.
• Ví dụ: Lớp Ô tô có các phương thức
• Tăng tốc
• Giảm tốc
13
1.4. Lớp vs. Đối tượng
Lớp
Đối tượng
Lớp là mô hình khái niệm, mô tả
các thực thể
Đối tượng là sự vật thật, là thực
thể thực sự
Lớp như một bản mẫu, định nghĩa Mỗi đối tượng có một lớp xác định
các thuộc tính và phương thức
chung của các đối tượng
dữ liệu (thuộc tính) và hành vi
(phương thức) của nó.
Dữ liệu của các đối tượng khác
nhau là khác nhau
Một lớp là sự trừu tượng hóa của Đối tượng là một thể hiện
một tập các đối tượng (instance) của một lớp
14
1.4. Lớp vs. Đối tượng (2)
Đối tượng MyBook
Lớp BOOK
Thể hiện: Một đối tượng cụ thể
Thuộc tính thể hiện: gán giá trị cho các thuộc tính
của một đối tượng cụ thể
Phương thức: các
hành vi đối tượng
có thể thực hiện
Thuộc tính: các
thông tin liên quan
đến trạng thái
borrow
borrow
Vu Thi Huong
Giang
250 pages
Human
computer
interaction
countPages
countPages
15
2/ Đóng gói
16
2.1. Đóng gói (Encapsulation)
• Là một trong 4 nguyên lý cơ bản của lập trình HĐT.
• Dữ liệu/thuộc tính và hành vi/phương thức được
đóng gói trong một lớp.
Hướng đối tượng
17
2.1. Đóng gói (2)
• Một đối tượng là một thực thể được đóng gói với
mục đích:
• Cung cấp tập các dịch vụ nhất định
• Đối tượng được đóng gói có thể được xem như một hộp
đen – các công việc bên trong là ẩn so với client
• Dù thay đổi thiết kế/mã nguồn bên trong nhưng giao
diện bên ngoài không bị thay đổi theo
Don’t know how
it works, but it
works!
Input
Output
18
2.1. Đóng gói (3)
• Sau khi đóng gói, một đối tượng có hai khung nhìn:
• Bên trong: Chi tiết về các thuộc tính và các phương thức
của lớp tương ứng với đối tượng
• Bên ngoài: Các dịch vụ mà một đối tượng có thể cung
cấp và cách đối tượng đó tương tác với phần còn lại của
hệ thống
Client
Methods
Data
19
2.2 Phạm vi truy cập
• Phạm vi truy cập xác định khả năng nhìn thấy được
của một thành phần của chương trình với các
thành phần khác của chương trình
• Đối với lớp
• Phạm vi truy cập có thể được áp dụng cho các thành
phần của lớp
• private: chỉ truy cập được từ bên trong lớp đó
• public: có thể truy cập được tại mọi nơi, từ trong và ngoài lớp
• Xem thêm phần 3.1.4
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Bài 3: Trừu tượng hóa và Đóng gói - Nguyễn Thị Thu Trang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_lap_trinh_huong_doi_tuong_bai_3_truu_tuong_hoa_va.pdf

