Bài giảng 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

pdf47 trang | Chia sẻ: NamTDH | Lượt xem: 1222 | Lượt tải: 0download
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:

  • pdfchuong_01_762.pdf
Tài liệu liên quan