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