Tổng hợp bài giảng môn Lập trình Hướng đối tượng_Nguyễn Thị Thu Trang | Trường Đại học Bách Khoa Hà Nội
Tổng hợp bài giảng môn Lập trình Hướng đối tượng_Nguyễn Thị Thu Trang| Bài giảng môn Lập trình Hướng đối tượng| Trường Đại học Bách Khoa Hà Nội.Tài liệu gồm 401 trang giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem.
Môn: Lập trình hướng đối tượng hust
Trường: Đại học Bách Khoa Hà Nội
Thông tin:
Tác giả:
Preview text:
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
ViỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bài 03. Đóng gói và xây dựng lớp,
tạo và sử dụng đối tượng. Nguy n ễ Th ịThu Trang trangntt-fit@mail.hut.edu.vn 2 M c ụ tiêu bài h c ọ
• Nêu được bản chất, vai trò của trừu tượng hóa
• Giải thích về đóng gói và che giấu thông tin • Xây dựng lớp
▫ Định nghĩa lớp, thực hiện ẩn
▫ Tạo các phương thức, các trường/thuộc tính
• Tạo và sử dụng đối tượng
▫ Phương thức khởi tạo
▫ Khai báo và khởi tạo đối tượng
▫ Sử dụng đối tượng 3 N i ộ dung 1. Tr u t ừ rư n ợ g hóa d ữ li u ệ 2. Đóng gói và xây d n ự g l p ớ 3. T o v ạ à s d ử n ụ g đ i t ố ư n ợ g 1.1. Tr u ừ tư n ợ g hóa • Gi m ả thi u ể và tinh l c ọ các chi ti t ế nh m ằ t p ậ trung vào m t ộ s ố khái ni m ệ /v n ấ đ ề quan tâm t i ạ m t ộ th i ờ đi m ể .
▫ “abstraction – a concept or idea not associated with any specific instance”. ▫ Ví d : C ụ ác đ n ị h nghĩa toán h c ọ • 2 lo i ạ tr u ừ tư n ợ g hóa ▫ Tr u ừ tư n ợ g hóa đi u ề khi n ể (control abstraction) ▫ Tr u ừ tư n ợ g hóa d ữ li u ệ (data abstraction) 1.1. Tr u ừ tư n ợ g hóa (2) • Tr u ừ tư n ợ g hóa đi u ề khi n ể : S ử d n ụ g các chư n ơ g trình con (subprogram) và các lu n ồ g đi u ề khi n ể (control flow) ▫ Ví d : ụ a := (1 + 2) * 5 N u ế không có tr u ừ tư n ợ g 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 p ị hân… • Tr u ừ tư n ợ g hóa d ữ li u ệ : X l ử ý d ữ li u ệ theo các cách khác nhau ▫ Ví d : K ụ i u d ể l ữ i u ệ S tá ự ch bi t rõ ệ ràng gi a ữ các thu c tí ộ nh tr u ừ tư ng ợ c a ủ ki u ể d ữ li u ệ và các chi ti t ế th c ự thi c t ụ h c ể a ủ ki u ể d li ữ u ệ đó. 6 1.2. Tr u ừ tư ng ợ hóa d ữ li u ệ trong OOP • Đ i ố tư n ợ g trong th c ự t ế ph c ứ t p ạ • C n ầ đ n ơ gi n ả hóa, b ỏ qua nh n ữ g chi ti t ế không c n ầ thi t ế
• Ch ỉ“trích rút” l y ấ nh n ữ g thông tin liên quan,
thông tin quan tâm, quan tr n ọ g v i ớ bài toán 7 8 1.2. Tr u ừ tư n ợ g hóa d ữ li u ệ (3)
• Any model that includes the most important,
essential, or distinguishing aspects of something
while suppressing or ignoring less important,
immaterial, or diversionary details. The result of
removing distinctions so as to emphasize
commonalties (Dictionary of Object Technology, Firesmith, Eykholt, 1995). Cho phép qu n ả lý các bài toán ph c t ứ p ạ b n ằ g cách t p ậ trung vào các đ c ặ tr n ư g quan tr n ọ g c a ủ m t th ộ c th ự ể nh m ằ phân bi t ệ nó v i ớ các lo i ạ th c t ự h k ể hác. 9 1.2. Tr u ừ tư n ợ g hóa d ữ li u ệ (2) • Tr u ừ tư n ợ g hóa 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 n ả h nào đó. • T p ậ h p ợ các th ể hi n ệ c a ủ các th c ự th ể thành các nhóm có chung các thu c ộ tính g i ọ là L p ớ (class). 10 unclassified "things" 11 • organisms, mammals, humans 12 • organisms, mammals, dangerous mammals 13 1.3. L p ớ vs. Đ i ố tư n ợ g
• Lớp là mô hình khái niệm, Đối tượng là sự vật thật, là mô tả các thực thể thực thể thực sự
• Lớp như một bản mẫu,
Đối tượng là một thể hiện
định nghĩa các thuộc tính
(instance) của một lớp, dữ
và phương thức chung của liệu của các đối tượng các đối tượng
khác nhau là khác nhau
Mỗi đối tượng có một lớp
• Một lớp là sự trừu tượng
xác định dữ liệu và hành vi
hóa của một tập các đối của nó. tượng Bi u ể di n ễ l p ớ trong UML • L p ớ (class) đư c ợ bi u ể di n ễ Professor b n ằ g 1 hình ch ữ nh t ậ v i ớ 3 - name thành ph n ầ : - employeeID : UniqueId - hireDate - status - discipline ▫ Tên l p ớ - maxLoad + submitFinalGrade() ▫ C u ấ trúc (thu c ộ tính) + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass() ▫ Hành vi (thao tác) Thu c ộ tính (attribute) là gì?
• Một thuộc tính là một đặc tính được đặt tên của một
lớp mô tả khoảng giá trị mà các thể hiện của đặc tính đó có thể chứa.
▫ Một lớp có thể không có thuộc tính nào hoặc có số lượng thuộc tính bất kỳ. Student - name - address Attributes - studentID - dateOfBirth L p ớ và đ i ố tư n ợ g trong UML Class sv1:Student - name = “M. Modano” - address = “123 Main St.” Student - studentID = 9 - name
- dateOfBirth = “03/10/1967” - address Objects - studentID - dateOfBirth sv2:Student - name = “D. Hatcher” - address = “456 Oak Ln.” - studentID = 2
- dateOfBirth = “12/11/1969” 17 N i ộ dung 1. Tr u t ừ rư n ợ g hóa d ữ li u ệ 2. Đóng gói và xây d n ự g l p ớ 3. T o v ạ à s d ử n ụ g đ i t ố ư n ợ g 18
2.1. Đóng gói (Encapsulation) Client Methods
• 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 Data ứ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 19 2.1. Đóng gói (2) • D ữ li u/t ệ hu c ộ tính và hành vi/phư n ơ g th c ứ đư c ợ đóng gói trong m t ộ l p ớ Encapsulation BankAccount - owner: String - balance: double + debit(double): boolean +credit(double) 20 2.1. Đóng gói (3) • M t ộ đ i ố tư n ợ g là m t ộ th c ự th ể đư c đó ợ ng gói, cung c p ấ t p ậ các d ch ị v n ụ h t ấ đ n ị h • M t ộ đ i ố tư n ợ g đư 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 Input Output it works, but it works!