Lập trình tuyến tính :
• Còn gọi là lập trình phi cấu trúc
• Giải quyết các bài toán tương nhỏ, đối đơn giản
Đặc điểm:
• Chỉ gồm một chương trình chính
• Gồm một dãy tuần tự các câu lệnh
• Các biến dùng trong chương trình là toàn cục
• Chương trình ngắn, ít hơn 100 dòng
47 trang |
Chia sẻ: NamTDH | Lượt xem: 1389 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG
(Object-Oriented Programming)
www.lhu.edu.vn 1
Thông tin về môn học
www.lhu.edu.vn 2
• Số tiết lý thuyết: 45
• Số tiết thực hành: 45
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
Thông tin về môn học
www.lhu.edu.vn 3
1. Trần Văn Lăng, “Lập trình hướng đối tượng sử dụng C++”, Nxb
Thống kê, 2004.
2. Phạm Văn Ất, “C++ và Lập Trình Hướng Đối Tượng”, Khoa Học
Kỹ Thuật, 2000.
3. Vũ Thanh Hiền, “Lập trình Hướng Đối Tượng”, NXB ĐHQG ,
2000.
Tài liệu tham khảo
Thông tin về môn học
www.lhu.edu.vn 4
Gồ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á
Nội dung môn học
www.lhu.edu.vn 5
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 3: Lớp đối tượng3
Chương 4: Nạp chồng toán tử và hàm4
Chương 5: Tính kế thừa5
Chương 6: Tính đa hình5
Chương 7: Khuôn mẫu thiết kế5
Bài tập lý thuyết4
Các phương pháp lập trình1
Lập trình hướng đối tượng2
Các ngôn ngữ lập trình OOP3
Nội dung
www.lhu.edu.vn 6
Chương 1 Phương pháp lập trình hướng đối
tượng
www.lhu.edu.vn 7
Các phương pháp lập trình
Lập trình không có cấu trúc (lập trình tuyến tính)
Lập trình hướng thủ tục
Lập trình hướng đối tượng
www.lhu.edu.vn 8
Bài tập ôn:
Viế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 đó
Chương 1 Phương pháp lập trình hướng đối
tượng
www.lhu.edu.vn 9
#include
#include
#include
void main()
{
float a,b,c,cv,dt;
cout<<“\nNhap canh a:";
cin>>a;
cout<<“\nNhap canh b:";
cin>>b;
cout<<“\nNhap canh c:";
cin>>c;
cv=a+b+c;
cout<<"\nChu vi hinh tam giac la:“<<cv;
float p=(a+b+c)/2;
dt=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"\nDien tich hinh tam giac la:“<<dt;
}
Chương 1 Phương pháp lập trình hướng đối
tượng
Lập trình tuyến tính :
• Còn gọi là lập trình phi cấu trúc
• Giải quyết các bài toán tương nhỏ, đối đơn giản
Đặc điểm:
• Chỉ gồm một chương trình chính
• Gồm một dãy tuần tự các câu lệnh
• Các biến dùng trong chương trình là toàn cục
• Chương trình ngắn, ít hơn 100 dòng
www.lhu.edu.vn 10
Lập trình tuyến tính
Chương 1 Phương pháp lập trình hướng
đối tượng
Nhược điểm:
Không sử dụng lại được các đoạn mã
Không có khả năng kiểm soát phạm vi truy xuất dữ
liệu
Mọi dữ liệu trong chương trình là toàn cục
Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong
chương trình
Không đáp ứng được việc triển khai
phần mềm
www.lhu.edu.vn 11
Lập trình tuyến tính
_______________________________
Ra đời vào những năm 70
Chương trình được chia nhỏ thành
chương trình con:
Thủ tục (Procedure)
Hàm (Function)
Các chương trình con:
Độ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
www.lhu.edu.vn 12
Lập trình hướng thủ tục
Chương 1 Phương pháp lập trình hướng
đối tượng
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ệ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)
www.lhu.edu.vn 13
Lập trình hướng thủ tục
Chương 1 Phương pháp lập trình hướng
đối tượng
www.lhu.edu.vn 14
Lậ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á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)
Chương 1 Phương pháp lập trình hướng đối
tượng
www.lhu.edu.vn 16
#include
#include
#include
void main()
{
float a,b,c,cv,dt;
clrscr();
cout<<"\nNhap canh a:";
cin>>a;
cout<<"\nNhap canh b:";
cin>>b;
cout<<"\nNhap canh c:";
cin>>c;
cv=a+b+c;
cout<<"\nChu vi hinh tam giac la:“<<cv;
float p=(a+b+c)/2;
dt=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"\nDien tich hinh tam giac la:“<<dt;
getch();
}
Thủ tục nhập cạnh
Thủ tục tính chu vi
Thủ tục tính diện tích
Chương 1 Phương pháp lập trình hướng đối
tượng
www.lhu.edu.vn 17
void main()
{
float a,b,c,cv,dt;
clrscr();
nhapcanh(a);
nhapcanh(b);
nhapcanh(c);
printf("\nChu vi hinh tam giac la:%.2f",tinhchuvi(a,b,c) );
printf("\nDien tich hinh tam giac la:%.2f",tinhdientich(a,b,c) );
getch();
}
void nhapcanh(float&canh)
{
printf("\nNhap canh a:");
scanf("%f",&canh);
}
float tinhchuvi(float a,float b,float c)
{
return a+b+c;
}
float tinhdientich(float a,float b,float c)
{
float p=(a+b+c)/2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
Chương 1 Phương pháp lập trình hướng
đối tượng
www.lhu.edu.vn 18
Lậ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
Chương 1 lập trình hướng đối tượng
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
www.lhu.edu.vn 19
Lập trình hướng thủ tục
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)
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áy
tí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à đối
tượng.
www.lhu.edu.vn 20
Lập trình hướng đối tượng
Chương 1 Phương pháp lập trình hướng
đối tượng
www.lhu.edu.vn 21
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)
Chương 1 lập trình hướng đối tượng
Dữ liệu được xem như một phần tử chính yếu
và được bảo vệ
Hàm, thủ tục gắn kết với dữ liệu, thao tác
trên dữ liệu
22
Ưu điểm của lập trình hướng đối tượng
Chươ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
Chương 1 lập trình hướng đối tượng
Nhấ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 truy
xuất từ các hàm bên ngoài
www.lhu.edu.vn 24
Lập trình hướng đối tượng
Chươ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ô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
www.lhu.edu.vn 25
Lập trình hướng đối tượng
Chương 1 Phương pháp lập trình hướng
đối tượng
Đố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)
www.lhu.edu.vn 26
Một số khái niệm cơ bản
Chươ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ện
hành vi (behaviour) của đối tượng
www.lhu.edu.vn 27
Đối tượng (Object)
Chương 1 lập trình hướng đối tượng
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...
www.lhu.edu.vn 28
Đối tượng (Object)
Chươ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
www.lhu.edu.vn 29
Đối tượng (Object)
Chương 1 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.
www.lhu.edu.vn 30
Đối tượng (Object)
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 31
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)
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 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)
Chương 1 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
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ùng một loại nào đó
www.lhu.edu.vn 33
Định nghĩa lớp
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.
www.lhu.edu.vn 34
Lớp đối tượng (Class)
girlclassobject
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 35
Ví dụ: hãy xác định có mấy lớp đối tượng từ các
hình sau:
Đối tượng (Object)
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 36
Đối tượng (Object)
Lớp con cọp:
Màu lông,
Số chân
Cân nặng
Loại cọp
Tên cọp
Chương 1 Phương pháp lập trình hướng
đối tượng
www.lhu.edu.vn 37
Thuộc tính và phương thức của lớp
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)
Chương 1 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ó
www.lhu.edu.vn 38
Thông điệp và truyền thông điệp
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 39
Thông điệp và truyền thông điệp
Lớp con cọp:
Màu lông: vàng vằn đen
Số chân: 4 chân
Cân nặng: 100 kg
Loại cọp: cọp núi
Tên cọp: meomeo
Hành động: chạy (điểm xuất phát, đích đến)
Chương 1 lập trình hướng đối tượng
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ụ: CopVang.Chay(A, B);
www.lhu.edu.vn 40
Thông điệp và truyền thông điệp
Chươ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í.
www.lhu.edu.vn 41
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 ?...
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
www.lhu.edu.vn 42
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)
Chương 1 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.
www.lhu.edu.vn 43
Tính thừa kế (Inheritance)
Chương 1 lập trình hướng đối tượng
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ơ sở (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)
www.lhu.edu.vn 44
Tính thừa kế (Inheritance)
Chương 1 lập trình hướng đối tượng
www.lhu.edu.vn 45
Tính thừa kế (Inheritance)
Con
Cha
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
www.lhu.edu.vn 46
Đường Thẳng Hình TrònĐiểm Hình Vuông
Vẽ
Tính đa hình (Polymorphism)
Chương 1 Phương pháp lập trình hướng
đối tượng
www.lhu.edu.vn 47
Lịch sử phát triển các ngôn ngữ
Các file đính kèm theo tài liệu này:
- chuong_01_762.pdf