Chương 1. Lập trình hướng đối tượng

Chia sẻ bởi Vũ Ngọc Hoàng Tuấn | Ngày 19/03/2024 | 10

Chia sẻ tài liệu: Chương 1. Lập trình hướng đối tượng thuộc Công nghệ thông tin

Nội dung tài liệu:

12/10/2011
Lập trình
hướng đối tượng
(Object-Oriented Programming)
Phan Mạnh Thường
10/12/2011
www.lhu.edu.vn
Thông tin về môn học
Số tiết lý thuyết : 45
Số tiết thực hành : 30
Thời lượng
Kỹ thuật lập trình cơ bản
Cấu trúc dữ liệu
Điều kiện
Cung cấp các kiến thức cơ bản về
Ngôn ngữ C++
Phân tích và thiết kế ứng dụng theo phương pháp hướng đối tượng
Mục tiêu
10/12/2011
www.lhu.edu.vn
Thông tin về môn học
Trần Văn Lăng, “Lập trình hướng đối tượng sử dụng C++”, Nxb Thống kê, 2004.
Phạm Văn Ất, “C++ và Lập Trình Hướng Đối Tượng”, Khoa Học Kỹ Thuật, 2000.
Vũ Thanh Hiền, “Lập trình Hướng Đối Tượng”, NXB ĐHQG , 2000.
Bruce Eckel, “Thinking in C++”, Prentice Hall Inc., 2000.
Budd, Timothy, “An Introduction to Object-Oriented Programming”, Addison-Wesley, 1997.
Robert Lafore, “Object-oriented Programming in C++”, SAMS, 2001.
Ali Bahrami, “Object-oriented Systems Development”, McGraw-Hill Companies Inc., 1999.
Tài liệu tham khảo
10/12/2011
www.lhu.edu.vn
Thông tin về môn học
Gồm 3 cột điểm:
Điểm chuyên cần (10%): điểm danh buổi học
(Lưu ý: nghỉ quá 30% số tiết bị cấm thi)
Điểm kiểm tra (30%): lập trình trên máy
Điểm thi (60%): làm bài thi giấy
Đánh giá
10/12/2011
www.lhu.edu.vn
Nội dung môn học
Chương 1: Giới thiệu lập trình hướng đối tượng
Chương 2: Ngôn ngữ lập trình C++
2
Chương 5: Tính kế thừa
5
Chương 6: Tính đa hình
5
Chương 7: Khuôn mẫu thiết kế
5
Giới thiệu phương pháp lập trình hướng đối tượng
Chương 1
Nội dung
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình không có cấu trúc (lập trình tuyến tính)
Lập trình có cấu trúc (lập trình thủ tục)
Lập trình module
Lập trình hướng đối tượng
Các phương pháp lập trình
10/12/2011
www.lhu.edu.vn
Một “chương trình chính” bao gồm một dãy các lệnh liên tiếp
Các biến dùng trong chương trình là toàn cục
Lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng đối tượng
10/12/2011
www.lhu.edu.vn
TITLE PGR3-1:IBM CHARACTER DISPLAY
.MODEL SMALL
.STACK 100H
.CODE
MAIN PROC
MOV AH,2 ; hàm xuất ký tự
MOV CX,256 ; số ký tự cần xuất
MOV DL,0 ; DL giữ mã ASCII của ký tự NUL
; PRINT_LOOP :
INT 21H ;display character
INC DL
DEC CX
JNZ PRINT_LOOP ;nhảy đến print_loop nếu CX# 0
;DOS EXIT
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
Ví dụ lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng đối tượng
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Nhược điểm:
Mọi dữ liệu trong chương trình đều là biến toàn cục do đó có thể bị thay đổi bởi bất kỳ phần nào đó của chương trình.
Khó khăn trong việc gỡ lỗi chương trình
Không tận dụng lại được mã nguồn
Lập trình tuyến tính
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
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)
Một chương trình chính 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ác chương trình con mà không ảnh hưởng lẫn nhau
Tiếp cận theo hướng từ trên xuống (Top-Down)
Lập trình thủ tục
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình thủ tục
Cấu trúc chương trình theo thủ tục, trong chương trình chính có các lời gọi thực hiện các thủ tục với các đối số
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Ư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
Khuyết điểm
Với các chương trình lớn số lượng thủ tục nhiều dẫn đến khó bảo trì và sửa lỗi
Lập trình thủ tục
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Các thủ tục có cùng một chức năng chung sẽ được nhóm lại với nhau tạo thành một module riêng biệt
Một chương trình được chia thành nhiều module
Mỗi module có dữ liệu riêng của nó
Lập trình module
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình module
Lập trình module. Chương trình chính là sự kết hợp giữa các lời gọi tới các thủ tục trong các module riêng biệt với các dữ liệu thích hợp
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Ưu điểm:
Chương trình có tính cấu trúc cao
Dữ liệu được kiểm soát trong từng module
Có thể tái sử dụng module cho nhiều chương trình
Khuyết điểm
Khi thay đổi cấu trúc dữ liệu thì phải viết lại module
Với các chương trình lớn, mỗi module có thể do nhiều lập trình viên đảm trách có thể dẫn đến thiếu nhất quán trong việc sử dụng các dữ liệu dùng chung
Lập trình module
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình hướng đối tượng (OOP- Object-Oriented Programming)
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áy tính.
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à đối tượng.
Lập trình hướng đối tượng
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Lập trình hướng đối tượng
Cấu trúc chương trình được xây dựng trên nền tảng các đối tượng, trong chương trình các đối tượng giao tiếp với nhau bằng cách chuyển thông điệp (gọi hàm)
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Loại bỏ những thiếu sót của tiếp cận theo thủ tục
Trong OOP
Dữ liệu được xem như một phần tử chính yếu và được bảo vệ
Hàm gắn kết với dữ liệu, thao tác trên dữ liệu
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
Ưu điểm của lập trình hướng đối tượng
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Nhấn mạnh trên dữ liệu hơn là thủ tục
Cá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 truy xuất từ các hàm bên ngoài
Các đối tượng có thể giao tiếp với nhau thông qua các hàm
Dữ liệu hay các hàm mới có thể được thêm vào khi cần
Tiếp cận từ dưới lên (Bottom – Up)
Phương pháp lập trình
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Kiểu dữ liệu trừu tượng (ADT_Abstract Data Type)
Đố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
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Một kiểu dữ liệu trừu tượng là một mô hình toán học của các đối tượng dữ liệu tạo thành một kiểu dữ liệu và các toán tử (phép toán) thao tác trên các đối tượng đó
Kiểu dữ liệu trừu tượng: T =
V (Values - miền giá trị): tập hợp các giá trị mà kiểu T có thể nhận
O (Operators – các thao tác): tập hợp các thao tác được định nghĩa trên V
Kiểu dữ liệu trừu tượng
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Ví dụ về kiểu dữ liệu trừu tượng: Số nguyên.
Dữ liệu: một tập các chữ số 0-9 và một dấu tiền tố là + hoặc -. Chúng ta ký hiệu cả số là N.
Các toán tử:
constructor: khởi tạo một số nguyên
sub(k): trả về hiệu N – k.
add(k): trả về tổng N + k.
……
End
Kiểu dữ liệu trừu tượng
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp 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.
Mỗi đối tượng có các đặc điểm (feature), trạng thái (state) và khả năng thực hiện hành vi (behaviour)
Ví 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)
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Cá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.
Mỗi đối tượng phần mềm cũng có các đặc điểm, trạng thái và hành động.
Đặc điểm: thuộc tính (property)
Hành động: phương thức (method)
Trạng thái: sự kiện (event)


Đối tượng= dữ liệu + phương thức
Đối tượng (Object)
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Trong thế giới thực có nhiều đối tượng cùng lớp.
Ví dụ:








Chương trình hướng đối tượng có nhiều đối tượng cùng loại chia sẻ những đặc điểm chung.
Lớp đối tượng (Class)
girl
class
object
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu
Ví dụ: lớp XeDap là một thiết kế chung cho nhiều đối tượng xe đạp được tạo ra
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 đối tượng của cùng một loại nào đó
Một đối tượng là một thể hiện (instance) cụ thể của lớp.
Ví dụ: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap
Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau
Ví dụ: một xe đạp có thể đang ở bánh răng thứ 5 trong khi một xe khác có thể là đang ở bánh răng thứ 3.
Định nghĩa lớp
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Khai báo cho lớp XeDap
Đối tượng của lớp XeDap
Ví dụ lớp xe đạp
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Thuộc tính lớp (class attribute) là một hạng mục dữ liệu được định nghĩa bên trong 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 (member data)
Phương thức lớp (class method) là một hà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)
Thuộc tính và phương thức của lớp
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Để yêu cầu đối tượng cung cấp thông tin hoặc thực hiện một hành động ta truyền một thông điệp (send message) cho nó
Thông điệp (message) bao gồm 3 thành phần:
Đối tượng nhận thông điệp
Tên của phương thức thực hiện
Các tham số mà phương thức cần

Tênđốitượng.Tênphươngthức(cácthamsố)
Ví dụ: MyBike.Brake();
MyBike.ChangeGear(3);
Thông điệp và truyền thông điệp
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Đóng gói (encapsulation) là tiến trình che giấu dữ liệu và việc thực thi chi tiết của một đối tượng.
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à không cần quan tâm bên trong máy tính hoạt động ra sao? Nó điều khiển các thiết bị như thế nào ?...
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Đó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ượng khác ở bên ngoài
Việc che giấu những chi tiết thiết kế và cài đặt từ những đối tượng khác được gọi là ẩn thông tin
Ẩn thông tin (Information Hiding)
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Hệ thống hướng đối tượng cho phép các lớp được định nghĩa kế thừa từ các lớp khác
Ví dụ, lớp xe đạp leo núi và xe đạp đua là những lớp thừa kế từ lớp xe đạp.
Thừa kế nghĩa là các phương thức và các thuộc tính được định nghĩa trong một lớp có thể được thừa kế hoặc được sử dụng lại bởi lớp khác.
Lớp ban đầu được gọi là lớp cơ bản (Base class) hay lớp cha (Parent class)
Lớp thừa kế gọi là lớp dẫn xuất (Derived class) hoặc lớp con (Subclass)
Tính thừa kế (Inheritance)
10/12/2011
www.lhu.edu.vn
Chương 1 Phương pháp lập trình hướng đối tượng
Đa hình: “nhiều hình thức”, hành động cùng tên có thể được thực hiện khác nhau đối với các đối tượng/các lớp khác nhau.
Ngữ cảnh khác  kết quả khác
Tính đa hình (Polymorphism)
10/12/2011
www.lhu.edu.vn
Chươ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ữ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Vũ Ngọc Hoàng Tuấn
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)