Chương 1 Phương pháp lập trình hướng đối tượng liệu Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong... Chương 1 Phương pháp lập trình hướng đối tượngĐặc điểm: Gom nhóm các câu lện
Trang 1LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG (Object-Oriented Programming)
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG (Object-Oriented Programming)
Trang 2phương pháp hướng đối tượng
Mục tiêu
Trang 3Thông tin về môn học
Trang 4Gồm 3 cột điểm:
• Điểm chuyên cần (10%): điểm danh buổi học
• Điểm kiểm tra (30%): bài tập lớn hoặc thi giữa kỳ
• Điểm thi (60%): thi trắc nghiệm trên máy
Đánh giá
Trang 5Nội dung môn học
Trang 7Chương 1 Phương pháp lập trình hướng đối
Trang 8Viết chương trình nhập vào 3 cạnh của
một tam giác Tính và tính và in ra chu
vi, diện tích của tam giác đó
Trang 9Chương 1 Phương pháp lập trình hướng đối
Trang 10 Lập trình tuyến tính :
• Còn gọi là lập trình phi cấu trúc
Đặc điểm:
Lập trình tuyến tính
Trang 11Chương 1 Phương pháp lập trình hướng
đối tượng
liệu
Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong
Trang 12 Ra đời vào những năm 70
chương trình con :
Thủ tục (Procedure)
Hàm (Function)
Độc lập với nhau và có dữ liệu riêng
Trao đổi qua: tham số và biến toàn cục
Lập trình hướng thủ tục
Trang 13Chương 1 Phương pháp lập trình hướng đối tượng
Đặc điểm: Gom nhóm các câu lệnh thường xuyên thực hiện trong chương trình chính lại một chỗ và đặt tên đoạn câu lệnh đó thành một thủ tục (Procedure) hay còn gọi là chương trình con (Sub Routines)
Lập trình hướng thủ tục
Trang 14Lập trình hướng thủ tục
Như vậy một chương trình hoàn chỉnh sẽ:
Bao gồm nhiều chương trình con, mang tính cấu trúc cao và ít lỗi hơn
Các biến có thể được xử lý cục bộ trong cácchương trình con mà không ảnh hưởng lẫnnhau
Tiếp cận theo hướng từ trên xuống (Top-Down)
Trang 17Chương 1 Phương pháp lập trình hướng đối
printf("\ nChu vi hinh tam giac la:%.2f", tinhchuvi(a,b,c) );
printf("\ nDien tich hinh tam giac la:%.2f", tinhdientich(a,b,c) );
Trang 18Lập trình hướng thủ tục
Ưu điểm:
Chương trình có tính cấu trúc cao
Dễ cài đặt và ít lỗi hơn
Có thể sử dụng các thủ tục dùng chung
Trang 19Chương 1 lập trình hướng đối tượng
Trang 20 Lập trình hướng đối tượng
(OOP-Object-Oriented Programming)
Là một cách tư duy mới, tiếp cận hướng đối tượng để giải quyết vấn đề bằng máytính
Là một phương pháp thiết kế và phát triển phần mềm dựa trên kiến trúc lớp và đốitượng
Lập trình hướng đối tượng
Trang 21Chương 1 Phương pháp lập trình hướng
Trang 22Dữ liệu được xem như một phần tử chính yếu
Trang 23Chương 1 lập trình hướng đối tượng
Phân tách bài toán thành nhiều thực thể
(đối tượng): xây dựng dữ liệu + hàm cho các đối tượng này
Tăng cường khả năng sử dụng lại mã nguồn
23
Ưu điểm của lập trình hướng đối tượng
Trang 24Nhấn mạnh trên dữ liệu hơn là thủ tục
Chương trình bao gồm các đối tượng
Dữ liệu được che giấu và không thể được truyxuất từ các hàm bên ngoài
Lập trình hướng đối tượng
Trang 25Chương 1 lập trình hướng đối tượng
Các đối tượng có thể giao tiếp với nhau thôngqua các hàm
Dữ liệu hay các hàm mới có thể được thêm vàokhi cần
Lập trình hướng đối tượng
Trang 26Đối tượng (Object) và lớp đối tượng (Class)
Đóng gói (Encapsulation) và ẩn thông tin (Information Hiding)
Thừa kế (Inheritance)
Đa hình (Polymorphism)
Một số khái niệm cơ bản
Trang 27Chương 1 lập trình hướng đối tượng
Một đối tượng thế giới thực là một thực thể cụthể mà thông thường bạn có thể sờ, nhìn thấy hay
cảm nhận được
Từ đó bạn có thể xác định được các đặc điểm(feature), trạng thái (state) và khả năng thực hiệnhành vi (behaviour) của đối tượng
Đối tượng (Object)
Trang 28Ví dụ : một con cọp có:
* Đặc điểm: màu lông, số chân, cân nặng
* Trạng thái: vui vẻ, giận dữ, no, đói
* Hành vi: ăn, ngủ, chạy, vồ mồi
Đối tượng (Object)
Trang 29Chương 1 lập trình hướng đối tượng
Ví dụ: Hãy xác định đâu là đối tượng trong hình dưới
Đối tượng (Object)
Trang 30Các đối tượng phần mềm có thể được dùng để
biểu diễn các đối tượng thế giới thực.
Đối tượng (Object)
Trang 31Chương 1 lập trình hướng đối tượng
Trạng thái sự kiện (event)
Đối tượng = dữ liệu + phương thức
Đối tượng (Object)
Trang 32 Ví dụ: hãy xác định đâu là các đối tượng mềm
trong hình dưới
Đối tượng (Object)
Trang 33Chương 1 lập trình hướng đối tượng
Một lớp là một thiết kế (blueprint) haymẫu (prototype) cho các đối tượng cùngkiểu
Lớp định nghĩa các thuộc tính và các phương thức chung cho tất cả các đốitượng cùng một loại nào đó
Định nghĩa lớp
Trang 34 Trong thế giới thực có nhiều đối tượng cùng lớp.
Lớp đối tượng (Class)
girl
class object
Trang 35Chương 1 lập trình hướng đối tượng
Trang 36Đối tượng (Object)
Trang 37Chương 1 Phương pháp lập trình hướng
đối tượng
Thuộc tính và phương thức của lớp
Thuộc tính lớp (class attribute) là mộthạng mục dữ liệu được định nghĩa bêntrong lớp nhằm mô tả đặc điểm của lớp
và được gọi là dữ liệu thành viên (memberdata)
Phương thức lớp (class method) là mộthàm được định nghĩa bên trong lớp nhằm thực hiện một hành động cụ thể của lớp, các phương thức còn được gọi là hàm
thành viên (member function)
Trang 38 Để yêu cầu đối tượng cung cấp thông tin hoặc
Thông điệp và truyền thông điệp
Trang 39Chương 1 lập trình hướng đối tượng
Trang 40 Thông điệp (message) bao gồm 3 thành phần:
Trang 41Chương 1 Phương pháp lập trình hướng
đối tượng
Đóng gói (encapsulation) là quá trình gói dữ liệu (data/biến) và mã chương trình (code/phương thức) thành một khối thống nhất gọi là lớp (class) để dễ quản lí.
Tính đóng gói
Ví dụ: Bạn sử dụng máy tính để thực hiện rất nhiều công việc khác nhau mà
tính hoạt động ra sao? Nó điều khiển các thiết bị như thế nào ?
Trang 42Đóng gói giúp bảo vệ các thuộc tính và các phương thức được cài đặt bên trong lớp khỏi sự can thiệp của các đối tượngkhác ở bên ngoài
những chi tiết thiết
kế và cài đặt từ những đối tượng
ẩn thông tin
Ẩn thông tin (Information Hiding)
Trang 43Chương 1 lập trình hướng đối tượng
Trang 44 Thừa kế nghĩa là các phương thức và các thuộc
thừa kế hoặc được sử dụng lại bởi lớp khác
hay lớp cha (Parent class)
hoặc lớp con (Subclass)
Tính thừa kế (Inheritance)
Trang 45Chương 1 lập trình hướng đối tượng
Tính thừa kế (Inheritance)
Con
Cha
Trang 46Tính đa hình (Polymorphism)
Trang 47Chương 1 Phương pháp lập trình hướng
đối tượng
Lịch sử phát triển các ngôn ngữ