YOMEDIA
Giới thiệu phương pháp lập trình hướng đối tượng
Chia sẻ: Nguyen Ha
| Ngày:
| Loại File: PDF
| Số trang:35
66
lượt xem
5
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tạo ra sản phẩm tốt một cách có hiệu quả Nắm bắt được công nghệ
Object-oriented programming
.Độ phức tạp, độ lớn PM ngày càng cao
Một số hệ Unix chứa khoảng 4 triệu dòng lệnh MS Windows chứa hàng chục triệu dòng lệnh Người dùng ngày càng đòi hỏi nhiều chức năng, đặc biệt là
chức năng thông minh
AMBIENT/
Chủ đề:
Nội dung Text: Giới thiệu phương pháp lập trình hướng đối tượng
- LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG
Nguyễn Hữu Thể
CHƢƠNG 1
GIỚI THIỆU PHƢƠNG
PHÁP LẬP TRÌNH HƢỚNG
ĐỐI TƢỢNG
1
- NỘI DUNG
1 Phương pháp lập trình truyền thống
2 Phương pháp lập trình hướng đối tượng
3 Ưu điểm của LT HĐT so với lập trình truyền thống
4 Phương pháp phân tích bài toán theo tiếp cận HĐT
5
2
Object-oriented programming
- Mục tiêu của kỹ sƣ phần mềm
Tạo ra sản phẩm tốt một cách có hiệu quả
Nắm bắt được công nghệ
3
Object-oriented programming
- Độ phức tạp, độ lớn PM ngày càng cao
Một số hệ Unix chứa khoảng 4 triệu dòng lệnh
MS Windows chứa hàng chục triệu dòng lệnh
Người dùng ngày càng đòi hỏi nhiều chức năng, đặc biệt là
chức năng thông minh
Phần mềm luôn cần được sửa đổi
4
Object-oriented programming
- Độ phức tạp, độ lớn PM ngày càng cao
Cần kiểm soát chi phí
Chi phí phát triển
Chi phí bảo trì
Giải pháp chính là sử dụng lại (tái sử dụng)
Giảm chi phí và thời gian phát triển
Nâng cao chất lượng
5
Object-oriented programming
- Để sử dụng lại mã nguồn
Cần dễ hiểu
Chính xác
Giao diện rõ ràng
Tính module hóa
Không yêu cầu thay đổi khi sử dụng trong chương trình mới
6
Object-oriented programming
- Kỹ thuật lập trình truyền thống & HĐT
Phương pháp lập trình truyền thống
Phương pháp lập trình hướng đối tượng
Ưu điểm của lập trình OOP so với lập trình truyền thống
Phương pháp phân tích bài toán theo tiếp cận hướng đối tượng
7
Object-oriented programming
- 1. Phƣơng pháp lập trình truyền thống
Lập trình không có cấu trúc (unstructured programming)
Là phương pháp xuất hiện đầu tiên
Các ngôn ngữ như Assembly, Basic
Sử dụng các biến toàn cục
Lạm dụng lệnh GOTO
Không sử dụng hàm, viết tất cả trong một hàm main()
8
Object-oriented programming
- Lập trình không có cấu trúc
Cho phép viết những đoạn mã rối rắm (spaghetti code).
Lập trình viên sử dụng các lệnh goto” và “gosub” để nhảy đến
mọi nơi trong chương trình.
10 k=1
20 gosub 100
30 if y > 120 goto 60
40 k = k + 1 lệnh nhảy đến vị trí
50 goto 20 bất kỳ trong chương
60 print k, y trình
70 stop
100 y = 3*k*k + 7*k - 3
110 return
Đoạn trình trên khó theo dõi, khó hiểu, dễ gây lỗi, khó sửa đổi.
9
Object-oriented programming
- Lập trình không có cấu trúc
Nhƣợc điểm:
Gặp khó khăn khi xây dựng các chương trình lớn.
Hầu như không thể sử dụng lại
Những dòng lệnh được lặp lại thì buộc phải copy thành nhiều
chỗ
Chương trình sẽ không khoa học, khó sửa chữa và bảo trì.
10
Object-oriented programming
- Lập trình thủ tục (procedure programming)
Lấy các thủ tục (hàm) làm nền tảng xây dựng chương trình.
Các ngôn ngữ: Pascal, C, ...
Chương trình
Được phân nhỏ thành các thủ tục,
Mỗi thủ tục sẽ có chức năng riêng biệt.
Các thủ tục có thể gọi qua lại lẫn nhau.
11
Chƣơng trình = Cấu trúc dữ liệu + Giải thuật
Object-oriented programming
- Lập trình thủ tục (tt)
Kiểu lập trình rối int LuyThua(int x, int y){
rắm trên dẫn tới int t=1;
phong cách lập trình for(int i=1; i
- Lập trình thủ tục (tt)
Ƣu điểm:
Chương trình được tổ chức khoa học, dễ quản lý, bảo trì
Giải quyết được nhiều bài toán lớn
Nhóm các thủ tục theo các chức năng: Lập trình module
Nhƣợc điểm:
Cách tiếp cận đôi khi chưa phù hợp với các hoạt động
trong thế giới thực
Diễn đạt thiếu tự nhiên
Khó mô tả những quan hệ phức tạp của thế giới tự nhiên.
Bảo mật kém
13
Object-oriented programming
- Lập trình thủ tục (tt)
Nhƣợc điểm:
Bảo mật kém do không thể giới hạn truy xuất đến một dữ liệu
struct Date
{
int day;
int month;
int year;
};
void setDate(Date& date, int newDay,
int newMonth, int newYear)
{
date.day = newDay; Chuyện gì xảy ra nếu các đối số
... newDay, newMonth, newYear
}
tạo thành ngày tháng năm không hợp lệ?
...
14
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng
Lập trình hướng đối tượng (Object-oriented programming)
Dữ liệu, chức năng thao tác trên dữ liệu được gom lại thành 1
đối tượng
Chương trình không dựa trên chức năng mà dựa trên đối
tượng.
15
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng (tt)
Dữ liệu được gắn chặt với các hàm riêng
• Chỉ có các hàm đó tác động lên,
• Các hàm bên ngoài không thể truy cập.
Cho phép phân tích bài toán thành:
• Các thực thể (đối tượng)
• Xây dựng các dữ liệu cùng các hàm xung quanh các đối
tượng.
16
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng (tt)
Lập trình hướng đối tượng cho phép khắc phục các hạn
chế của các phương pháp trước
class Date{
public:
void setDate(int newDay, int newMonth, int newYear);
int getDay() { return day; }
...
private:
int day;
int month;
int year;
};
void Date::setDate(int newDay, int newMonth, int newYear){
//check validity of newDay, newMonth, newYear
...
//set new values
...
}
17
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng (tt)
Dựa trên ý tưởng
Xem thế giới là tuyển tập các đối tượng
• VD: bạn, những người bạn cùng lớp với bạn,
con chó, ĐTDĐ của bạn.
Có sự tương tác giữa các đối tượng bên trong
ứng dụng.
• VD: bạn có một con chó, bạn gọi điện thoại
bằng ĐTDĐ của bạn, bạn nói chuyện với bạn
cùng lớp của bạn.
Dữ liệu + chức năng/xử lý => đối tƣợng
(thuộc tính) (phương thức)
Một đối tượng đóng bao cả dữ liệu và các
phương thức.
18
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng (tt)
Một số ngôn ngữ lập trình hƣớng đối tƣợng
Simula (1967)
Smalltalk (1980)
C++ (1980s)
C#
Java
PHP
Perl
…
19
Object-oriented programming
- 2. Lập trình hƣớng đối tƣợng (tt)
Một số ngôn ngữ lập trình hƣớng đối tƣợng
Xuất phát từ tư tưởng OOP của ngôn ngữ SIMULA67,
Trung tâm nghiên cứu Palo Alto (hãng XEROR) nghiên cứu
ngôn ngữ OOP đầu tiên với tên Smalltalk.
Sau đó các ngôn ngữ OOP lần lượt ra đời như Eiffel, C++,
Delphi, Java, PHP, C#…
XEROR đã đề ra tư tưởng giao diện biểu tượng trên màn hình (icon
base screen interface)
Apple Macintosh, Microsoft Windows phát triển giao diện đồ họa.
Trong Microsoft Windows, tư tưởng OOP được thể hiện:
• Chúng ta click vào đối tượng
• Mỗi đối tượng có thể là control menu, control menu box,
menu bar, scroll bar, button, minimize box,...
20
Object-oriented programming
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...