Tải bản đầy đủ (.pptx) (91 trang)

Bài giảng Lập trình hướng đối tượng (dùng Java) Chương 3 Trần Minh Thái (2017 P1)

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 (11.1 MB, 91 trang )

Chương 3
Lập trình Hướng đối tượng với Java – P1

TRẦN MINH THÁI
Email:
Website: www.minhthai.edu.vn
Cập nhật: 02 tháng 03 năm 2017


Nội dung
#2

1.
2.
3.

Khai báo lớp và đối tượng trong Java
Phương thức khởi tạo
Các phạm vi trong Java, cách sử dụng


#3

Các khái niệm về hướng đối tượng


Lập trình hướng đối tượng (OOP)
#4




Mô hình hóa các đối tượng trong thế giới thực thành đối tượng phần mềm
Chương trình = Đối tượng + Thông điệp



Một đối tượng gồm có




Thuộc tính: các đặc điểm, trạng thái của đối tượng
Hành vi: các hành vi/ chức năng của đối tượng


Lớp đối tượng là gì?
#5



Lớp đối tượng (class): định nghĩa danh sách các thuộc tính (dữ liệu) và các phương thức chung
của một nhóm đối tượng nào đó



Lớp là khái niệm trung tâm của OOP, là sự mở rộng của khái niệm cấu trúc (struct)
Lớp = thuộc tính + phương thức


Lớp đối tượng là gì?
#6







Lớp được xem như một kiểu dữ liệu (kiểu đối tượng)
Lớp giúp lập trình viên:





Trừu tượng hóa dữ liệu
Đóng gói
và ẩn thông tin

Lớp là mô hình hóa rút gọn của thực thể trên thực tế, chỉ mô tả những thuộc tính, phương thức
quan tâm


Đối tượng là gì?
#7




Đối tượng (Object): là một thể hiện cụ thể của lớp, các thuộc tính có giá trị xác định
Đối tượng được xem như là một biến có kiểu dữ liệu là lớp



Lớp đối tượng vs Đối tượng?
#8

Thể hiện


#9

Các nguyên lý cơ bản
của hướng đối tượng


Nguyên lý cơ bản của OOP
#10


Trừu tượng hoá
#11





Loại bỏ đi các thông tin cụ thể, giữ lại các thông tin chung
Tập trung vào các đặc điểm chính của thực thể, làm cho nó khác biệt với những thực thể khác
Phụ thuộc vào góc nhìn


Trừu tượng hoá

#12

1

5 7

Khái

Số nguyên

-3

8 ....

quát

( int )

hóa

int, NGUOI, PERSON

Danh từ chung trong

là các ADT

ngôn ngữ tự nhiên

Người
( PERSON )


Khái


quát

date_of_birth,

hóa
attributes

Address, e-mail
.......>


Đóng gói – Module hoá
#13




Chia nhỏ hệ thống phức tạp thành các đối tượng nhỏ hơn
Đóng gói: Che giấu, ẩn chi tiết thực hiện bên trong





Hành vi riêng/ nội (private, internal): hành vi xử lý dữ liệu bên trong của đối tượng

Cung cấp cho các đối tượng khác (client) một hành vi giao tiếp (public/ interface methods)
Tính trong suốt: Thay đổi việc thực thi bên trong không làm ảnh hưởng tới các đối tượng khác


Phân cấp
#14



Một nhóm đối tượng mang những đặc điểm khác biệt với những đối tượng khác có thể tách
thành nhóm con



Lặp lại bước trên ta có cây phân cấp


#15

Cách xây dựng lớp đối tượng


Xây dựng lớp đối tượng
#16



Lớp đóng gói các thành viên và chỉ định điều khiển truy cập tới các thành viên:






Thuộc tính
Phương thức

Tập hợp các lớp được nhóm lại thành gói (package). Mỗi lớp trong gói cũng được chỉ định điều
khiển truy cập


Xây dựng lớp đối tượng
#17

Các từ khóa chỉ định điều khiển truy cập trong Java:






public: có thể truy cập từ mọi nơi
protected: có thể truy cập từ trong gói hoặc từ các lớp con
private: chỉ có thể truy cập từ chính lớp đó
Không chỉ định: có thể truy cập từ trong gói


Các bước xây dựng lớp đối tượng
#18

Bước 1: Mô hình hóa lớp đối tượng

Phát hiện các thuộc tính và hành vi
Bước 2: Mô tả phần tiêu đề của lớp
Bước 3: Định nghĩa thuộc tính
Bước 4: Định nghĩa phương thức getter, setter
Bước 5: Định nghĩa phương thức constructor
Bước 6: Định nghĩa phương thức


Bước 1: Mô hình hoá lớp đối tượng
#19





Ta cần biết/ quan tâm những thông tin gì về một đối tượng thuộc lớp này  thuộc tính
Ta thực sự cần xử lý (tác động) gì từ bên ngoài lên đối tượng  hành vi giao tiếp
Để có được hành vi giao tiếp, có cần thêm những xử lý mà bên ngoài không cần biết?  hành
vi nội


Bước 1: Mô hình hoá lớp trừu tượng
#20

Một lớp cần có:








Tên lớp
Danh sách các thuộc tính (fields)
Phương thức getter, setter
Phương thức constructor
Các phương thức: khởi tạo, cập nhật, kiểm tra ràng buộc, xử lý tính toán, cung cấp thông tin


#21

Xác định thành phần thuộc tính (field)


Xác định thuộc tính
#22



Đối với mỗi đối tượng, xác định các thông tin cần lưu trữ. Sau đó lập bảng mô tả thuộc tính như
sau:

St



Thuộc tính

Kiểu/ lớp


Ràng buộc

Diễn giải

Nếu có ràng buộc liên thuộc tính thì lập thêm bảng sau:

St

Mô tả ràng buộc

Thuộc tính
liên quan

Ghi chú


Xác định thuộc tính
#23

Ràng buộc là các quy định, quy tắc áp đặt trên các giá trị thuộc tính của đối tượng trong lớp, sao cho
đối tượng này thể hiện đúng với thực tế




Ràng buộc tĩnh: ràng buộc trên giá trị thuộc tính
Ràng buộc động: ràng buộc trên biến đổi giá trị thuộc tính

Ví dụ:





“Lương của nhân viên ít nhất là 1.500.000 đồng”  Tĩnh
“Lương của nhân viên chỉ có thể tăng”  Động

23


Ví dụ 1 xét lớp PhanSo
#24

St

Thuộc
tính

Kiểu/ lớp

1

tuSo

Số nguyên

2

mauSo

Số nguyên


Ràng buộc

Diễn giải

Tử số

mauSo ≠ 0

Mẫu số


Ví dụ 2 xét lớp MyDate
#25

St

Thuộc
Tính

Kiểu/ lớp

Ràng buộc

Diễn giải

1

day


Số nguyên

1≤day≤31

Ngày

2

month

Số nguyên

1≤month≤12

Tháng

3

year

Số nguyên

Năm


×