bài giảng chi tiết và đầy đủ nhất về lập trình hướng đối tượng với C++giúp bạn làm quen cũng như thành thạo lập trình hướng đối tượng trong thời gian nhanh nhất. bài giảng với những ngôn từ dễ hiểu được sắp xếp một cách logic để bạn có thể tiếp thu nhanh nhất.
Mục đích môn học: Môn học trang bị cho sinh viên kiến thức ngôn ngữ lập trình hướng đối tượng C++ khả phân tích, thiết kế ứng dụng theo hướng đối tượng Vị trí môn học: Áp dụng cho sinh viên năm thứ (học kỳ 6), CNTT Trong môn học có sử dụng kiến thức môn học: Cấu trúc liệu giải thuật, hệ điều hành, lý thuyết ngôn ngữ Giới thiệu môn học Nội dung môn học Giáo trình Tài liệu tham khảo Thi đánh giá môn học Thảo luận Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Thời lượng môn học: 75 tiết phân bổ sau: 45 tiết lý thuyết, 30 tiết thực hành (15 tiết thực hành máy + 15 tiết tập lớn) 15 tiết thực hành quy đổi thành 10 buổi (mỗi buổi tiếng) phòng máy Bài tập lớn (đồ án môn học): làm theo nhóm, có bảo vệ làm theo nhóm Sinh viên tự tham khảo tài liệu giao để thực tập lớn (đồ án môn học) nửa cuối học kỳ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Giữa kỳ kiểm tra, cuối kỳ thi Hình thức thi kiểm tra lập trình trực tiếp máy Điểm đánh giá môn học: ) Điểm kiểm tra + tập: hệ số 0,1 ) Điểm đồ án môn học: hệ số 0,3 ) Điểm thi: hệ số 0,6 Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Printed with FinePrint - purchase at www.fineprint.com Phần 1: Ngôn ngữ lập trình C++ Phần 2: Lập trình hướng đối tượng Phần 3: Visual C++ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng [1] Rober Lafore , C++ Interactive Cource [2] Herbert Schildt, C++ Nuts and Bolts: For Experienced Programmers, McGraw-Hill, Inc [3] Saba Zamir, C++ Primer for non C programmers, McGraw-Hill, Inc [4] GS Phạm Văn Ất (1997), Kỹ thuật lập trình C sở nâng cao, NXB KH&KT [5] Nguyễn Việt Hương (2000), Ngôn ngữ lập trình C++ cấu trúc liệu, NXB Giáo dục [6] Nguyễn Thanh Thủy đồng nghiệp (2003), Lập trình hướng đối tượng với C++, NXB KH&KT [1] C++ lập trình hướng đối tượng, GS Phạm Văn Ất, NXB GTVT, 2005 [2] Bài giảng môn học lập trình hướng đối tượng http://www.hua.edu.vn/it/ncthang Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Các câu hỏi sinh viên liên quan đến nội dung môn học “Lập trình hướng đối tượng” Các câu hỏi sinh viên liên quan đến nội dung tập lớn phương pháp thực bảo vệ Các câu hỏi sinh viên liên quan đến nội dung thi Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Chương Các phần tử ngôn ngữ C++ PHẦN I NGÔN NGỮ LẬP TRÌNH C++ I.Giới thiệu ngôn ngữ C++ II Các phần tử ngôn ngữ C++ III Cấu trúc chung chương trình C++ (viết DOS) Chương Các phần tử ngôn ngữ C++ Chương Các kiểu liệu C++ Chương Khai báo Biểu thức Khối lệnh Chương Vào/ra liệu với C++ Chương Các lệnh điều khiển chương trình Chương Mảng xâu ký tự Chương Kiểu cấu trúc kiểu liệt kê Chương Con trỏ Chương Hàm C++ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Lịch sử phát triển ngôn ngữ C++ Tại ngôn ngữ C++ thông dụng? Trình biên dịch Borland C++ 3.1 Trình biên dịch Visual C++ 6.0 Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 11 13 Là chương trình biên dịch chương trình C++ viết DOS Windows Borland C++ 3.1 phần mềm hãng Borland (Mỹ) Việc sử dụng Borland C++ 3.1 DOS giống Turbo Pascal 7.0 Tất thao tác mở, đóng tệp, soạn thảo chương trình, biên dịch chạy thử chương trình giống Turbo Pascal Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 10 Năm 1973 ngôn ngữ lập trình C đời với mục đích ban đầu để viết hệ điều hành Unix máy tính mini PDP Sau C sử dụng rộng rãi nhiều loại máy tính khác trở thành ngôn ngữ lập trình có cấu trúc ưa chuộng Để đưa tư tưởng lập trình hướng đối tượng vào C, năm 1980 nhà khoa học người Mỹ B Stroustrup cho đời ngôn ngữ C có tên ban đầu “C có lớp”, sau đến năm 1983 gọi C++ Ngôn ngữ C++ phát triển cao C Trong C++ không đưa vào tất khái niệm, công cụ lập trình hướng đối tượng mà đưa vào nhiều khả cho hàm Mặc dù tư tưởng lập trình hướng đối tượng đưa vào nhiều ngôn ngữ lập trình C++ ngôn ngữ lập trình hướng đối tượng thông dụng vì: C++ ngôn ngữ kế thừa mở rộng từ ngôn ngữ C (một ngôn ngữ cấu trúc ưa chuộng) Vì có kế thừa nên tất chương trình viết C chạy C++ C++ có đặc điểm tốt C Quản lý tên hàm mở rộng thông qua chế chồng hàm function overloading Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 15 Printed with FinePrint - purchase at www.fineprint.com Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 12 Tư tưởng phân vùng biến namespaces cho phép quản lý biến tốt Tính hiệu Các phần mềm xây dựng trở nên dễ hiểu Hiệu sử dụng thư viện Khả sử dụng lại mã thông qua templates Quản lý lỗi Cho phép xây dựng phần mềm lớn Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 14 Là chương trình biên dịch chương trình C++ viết DOS Windows Visual C++ 6.0 phần mềm hãng Microsoft, tích hợp công cụ lập trình Visual Studio 6.0 Để sử dụng Visual C++ 6.0 cho DOS, tạo project kiểu Win32 console application Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 16 Bộ ký tự Từ khoá Các tên tự đặt Các tên chuẩn Dấu chấm phẩy Lời thích Mọi ngôn ngữ lập trình xậy dựng ký tự Các ký tự ghép lại với để tạo thành từ Các từ lại liết kết với theo quy tắc để tạo thành câu lệnh Một chương trình bao gồm nhiều câu lệnh diễn đạt thuật toán để giải toán Bộ ký tự ngôn ngữ C++ gồm có ký tự sau: Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 17 Ký tự gạch nối _ Các dấu chấm câu ký tự đặc biệt khác: , ; : [] ? ! \ & | % # $ … Dấu cách khoảng trống dùng để ngăn cách từ Chú ý: Khi viết chương trình ta không sử dụng ký tự tập ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 19 21 Tên chuẩn tên đặt trình biên dịch đặt Tên chuẩn tên hằng, tên hàm Ghi nhớ: + Các từ khoá, tên tự đặt, tên chuẩn phân biệt chữ hoa chữ thường, nghĩa viết hoa, viết thường khác Ví dụ: Tên AB khác với tên ab + Riêng từ khoá, tên chuẩn luôn dùng chữ thường Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 18 Từ khoá từ riêng C++ Chúng thường sử dụng để khai báo kiểu liệu, để viết toán tử câu lệnh Các từ khoá C++ gồm có: asm _asm asm auto break case cdecl _cdecl cdecl char class const continue _cs cs default delete double _ds ds else enum _es es _export export extern far _far Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 20 Tên dùng để xác định đại lượng khác chương trình tên hằng, tên biến, tên hàm, tên trỏ, tên cấu trúc, tên tệp, tên nhãn,… Tên dãy ký tự chữ cái, chữ số dấu gạch nối song ký tự phải chữ dấu gạch nối Tên không đặt trùng với từ khoá Một số ví dụ tên đặt sai: 3XYZ_7 R#3 F(x) case Al pha Các từ khoá C++ gồm có: far _fastcall fastcall float for friend goto huge _huge huge if inline int interrupt _interrupt interrupt _loadds loadds long near _near near new operator pascal _pascal pascal private protected public register return _saveregs saveregs _seg seg short signed sizeof _ss ss static struct switch template this typedef union unsigned virtual void volatile while Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 26 chữ hoa: A, B,C,…Z 26 chữ thường: a…z 10 chữ số: 0, 1, 2,…, Các ký hiệu toán học: + - * / = ) ( 23 Printed with FinePrint - purchase at www.fineprint.com Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 22 Dấu chấm dùng để ngăn cách câu lệnh Dấu chấm phẩy thường đặt cuối câu lệnh thiếu Ví dụ: float x; x = 10.5; x = 2*x – 2.5; Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 24 III Cấu trúc chung chương trình C++ (viết DOS) Lời giải thích làm cho chương trình dễ hiểu, dễ đọc Lời giải thích đặt đâu chương trình phải đặt cặp /* */ đặt sau // Dùng /* */ lời giải thích nằm nhiều dòng, dùng // lời giải thích nằm dòng Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 25 Printed with FinePrint - purchase at www.fineprint.com //Khai báo sử dụng thư viện chương trình con, thư viện lớp #include Tương đương với …… USES PASCAL //Mô tả lớp đối tượng …… //Khai báo hàm (chương trình con) Tương đương với …… BEGIN PASCAL void main() { //Khai báo biến, hằng, kiểu liệu, đối tượng Thân chương trình …… //Các lệnh chương trình …… Tương đương với } END PASCAL //Định nghĩa hàm …… Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 26 Chương Các kiểu liệu C++ I Khái niệm kiểu liệu Khái niệm kiểu liệu Các kiểu liệu C++ Khái niệm kiểu liệu Các kiểu liệu C++ II Các kiểu liệu Kiểu ký tự Kiểu số nguyên Kiểu số thực (số dấu phẩy động) Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Một kiểu liệu tập giá trị xác định số phép toán Các kiểu liệu C++ gồm có GV Ngô Công Thắng Các kiểu liệu C++ gồm có Các kiểu liệu có cấu trúc Kiểu cấu trúc Kiểu tệp Các kiểu liệu Kiểu ký tự Kiểu số nguyên Kiểu số thực (số dấu phẩy động) Bài giảng LTHDT - Phần 1, Chương Kiểu người lập trình định nghĩa: Kiểu liệt kê Kiểu trỏ Các kiểu liệu có cấu trúc Kiểu mảng Kiểu xâu ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Kiểu ký tự Kiểu số nguyên Kiểu số thực (kiểu số phẩy động) Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Kiểu ký tự C++ định nghĩa với tên char, gồm 256 ký tự bảng mã ASCII Kiểu ký tự có kích thước byte Hằng ký tự ký tự cụ thể đặt dấu phẩy Ví dụ: ’A’, ’b’, ’9’ Một số ký tự điều khiển: ’\n’ Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Hằng xâu ký tự dãy ký tự đặt hai dấu nháy kép Ví dụ: ”Nhap vao mot so” Kiểu ký tự dùng kiểu số nguyên với tên sau: char: có giá trị -128 – 127 unsigned char: có giá trị – 255 Tất ký tự lưu trữ nhớ dạng số mã ASCII ký tự Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Printed with FinePrint - purchase at www.fineprint.com New line, đặt trỏ hình xuống đầu dòng ’\t’ Tab ’\b’ Backspace Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Carriage return, đưa trỏ hình đầu ’\r’ Kiểu số nguyên C++ định nghĩa với nhiều tên, chia thành hai nhóm: kiểu số nguyên có dấu kiểu số nguyên không dấu Kiểu số nguyên có dấu gồm có: Tên kiểu short int long Kích thước byte byte byte Bài giảng LTHDT - Phần 1, Chương Khoảng giá trị -32768 - 32767 -32768 - 32767 -231 – 231-1 GV Ngô Công Thắng Kiểu số nguyên không dấu gồm có: Kiều số thực C++ định nghĩa với nhiều tên khác nhau: Tên kiểu Kích thước Khoảng giá trị unsigned short byte - 65535 unsigned int byte - 65535 unsigned unsigned long byte - 232-1 Các số nguyên viết bình thường Ví dụ: -45 2056 345 Tên kiểu float double long double Chú ý: Các số nguyên vượt khoảng int xem long Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng Hằng số thực có cách viết: Dạng thập phân: gồm có phần nguyên, dấu chấm thập phân phần thập phân Ví dụ: 34.75 -124.25 Dạng mũ (dạng khoa học): gồm phần trị phần mũ số 10, phần trị số nguyên thực, phần mũ số nguyên âm dương Hai phần cách chữ e E Ví dụ: 125.34E-3 số 125.34x10-3 = 0.12534 0.12E3 số 0.12x103 = 120 1E3 số 103 = 1000 Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 11 Printed with FinePrint - purchase at www.fineprint.com Kích thước byte byte 10 byte Khoảng gía trị 3.4E-38–3.4E38 1.7E-308–1.7E308 3.4E-4932–1.1E4932 Độ xác 7-8 chữ số 15-16 chữ số 18-19 chữ số Khoảng giá trị kiểu số thực giá trị tuyệt đối số thực mà lưu trữ máy Giá trị có giá trị tuyệt đối nhỏ cận xem Bài giảng LTHDT - Phần 1, Chương GV Ngô Công Thắng 10 Chương Khai báo Biểu thức Khối lệnh I Các khai báo II Biểu thức III Khối lệnh Bài giảng LTHDT-Phần 1, Chương Khai báo sử dụng thư viện chương trình Khai báo Khai báo kiểu liệu Khai báo biến GV Ngô Công Thắng Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Khai báo sử dụng thư viện chương trình Các trình biên dịch C++ có sẵn nhiều chương trình (gọi hàm), hàm để thư viên chương trình khác Muốn sử dụng hàm ta phải khai báo sử dụng thư viện chương trình chứa hàm Cú pháp khai báo sau: #include #include “tên tệp header” Tên tệp header thư viện chương trình có đuôi h Ví dụ: #include //Khai báo sử dụng chương trình vào/ra Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Để đặt tên cho kiểu liệu ta dùng từ khoá typedef Cú pháp: đặt từ khoá typedef vào trước khai báo biến, tên biến trở thành tên kiểu liệu typedef khai_báo_biến; GV Ngô Công Thắng Biến có kiểu chứa giá trị kiểu Khi khai báo biến khởi tạo giá trị ban đầu cho biến đặt dấu giá trị cách sau tên biến Ví dụ: int a,b=20,c,d=35; Bài giảng LTHDT-Phần 1, Chương Cú pháp khai báo hằng: #define Tên_hằng Giá_trị_của_hằng Ví dụ: #define PI 3.141593 Khai báo đặt đâu chương trình Khi biên dịch chương trình, tất tên sử dụng sau dòng khai báo thay giá trị tên Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Biến tên ô nhớ nhớ (RAM) dùng để chứa liệu Khai báo biến đặt tên cho ô nhớ Khai báo biến để đâu chương trình Vị trí khai báo biến định phạm vi hoạt động biến Vấn đề nói kỹ phần Khối lệnh Cú pháp: Tên_kiểu_dl Tên_biến; Ví dụ: int a; //biến tên a, có kiểu số nguyên int Nếu có nhiều biến kiểu khai báo nhau, tên biến phân tách dấu phẩy Ví dụ: float a,b,c; Typedef unsigned int uint; Bài giảng LTHDT-Phần 1, Chương Khai báo việc đặt tên cho GV Ngô Công Thắng Printed with FinePrint - purchase at www.fineprint.com Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Biểu thức Phép toán số học Phép toán quan hệ logic Phép toán tăng giảm Thứ tự ưu tiên phép toán Các hàm số học Câu lệnh gán biểu thức gán Biểu thức điều kiện Chuyển đổi kiểu giá trị Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Biểu thức kết hợp phép toán toán hạng để diễn đạt công thức toán học đó, để có giá trị Toán hạng xem đại lượng có giá trị Toán hạng hằng, biến, hàm Khi viết biểu thức dùng dấu ngoặc tròn để thể trình tự tính toán biểu thức Mỗi biểu thức có giá trị nói chung có giá trị xem biểu thức Bài giảng LTHDT-Phần 1, Chương (a+b+c)/2 (a+b) > 2*c Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 10 (có giá trị 1) sai (có giá trị 0) Các phép toán quan hệ gồm có: Phép toán > >= < :: Lời gọi hàm, dấu ngoặc Truy nhập phần tử mảng Truy nhập gián tiếp Truy nhập trực tiếp Truy nhập tên miền Phép toán ! ~ + ++ Phủ định (NOT) Đảo bit Dấu dương Dấu âm Toán tử tăng Toán tử giảm Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 16 Thứ tự ưu tiên phép toán (tiếp) TT Loại phép toán Phép toán Phép toán truy nhập thành viên Phép toán nhân TT Loại phép toán Phép toán Ý nghĩa & * sizeof new delete (Kiểu dl) * ->* * / % Phép toán cộng + - Cộng Trừ Phép toán dịch bit >> = == != Nhỏ Nhỏ Lớn Lớn Bằng Khác GV Ngô Công Thắng 17 Thứ tự ưu tiên phép toán (tiếp) Phép toán Ý nghĩa Phép toán bit & Phép AND bit 10 Phép toán bit ^ Phép XOR bit 11 Phép toán bit | Phép OR bit 12 Phép toán logic && 13 Phép toán logic || 14 Phép toán điều kiện ?: Bài giảng LTHDT-Phần 1, Chương Phép AND logic Phép OR logic Ví dụ: a ? x : y //nếu a x, không y GV Ngô Công Thắng 16 Dấu phẩy 19 GV Ngô Công Thắng 21 GV Ngô Công Thắng 18 Thứ tự ưu tiên phép toán (tiếp) 15 Phép toán gán Ý nghĩa Cho cos(x) Cho sin(x) Cho arccos(x) Cho arcsin(x) Bài giảng LTHDT-Phần 1, Chương Bài giảng LTHDT-Phần 1, Chương TT Loại phép toán Các hàm số học nằm thư viện chương trình math, muốn sử dụng hàm ta phải khai báo: #include Dưới số hàm số học hay dùng: Tên hàm cos(x) sin(x) acos(x) asin(x) Phép toán Ý nghĩa Lấy địa biến Truy nhập qua trỏ Cho kích thước toán hạng Cấp phát nhớ động Giái phóng nhớ Phép ép kiểu liệu Bài giảng LTHDT-Phần 1, Chương TT Loại phép toán Thứ tự ưu tiên phép toán (tiếp) Phép toán Ý nghĩa = *= /= %= += -= &= ^= |= = , Bài giảng LTHDT-Phần 1, Chương Phép gán đơn giản Phép gán nhân Phép gán chia Phép gán chia lấy phần dư Phép gán cộng Phép gán trừ Phép gán AND bit Phép gán XOR bit Phép gán OR bit Phép gán dịch trái bit Phép gán dịch phải bit GV Ngô Công Thắng Tên hàm Ý nghĩa tan(x) fabs(x) exp(x) log(x) log10(x) pow(y,x) sqrt(x) Cho tgx Cho |x| ex Cho lnx Cho log10x Cho yx Cho bậc x Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 20 22 Câu lệnh gán biểu thức gán (tiếp) Câu lệnh gán Để đưa giá trị vào biến thời điểm lập trình ta sử dụng lệnh gán Có lệnh gán đơn giản lệnh gán phức hợp Lệnh gán đơn giản có dạng: Biến = Biểu thức; Lệnh gán đưa giá trị biểu thức bên phải vào biến bên trái Vế trái phép gán biến mà Ví dụ: a = 2*x*x + 3*x + 1; Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng Printed with FinePrint - purchase at www.fineprint.com 23 Câu lệnh gán Lệnh gán phức hợp có dạng: Biến Phép_toán = Biểu thức; Phép toán để trước dấu bằng, phép toán số học phép toán bit Ví dụ: a += 2; Lệnh gán đem giá trị biến kết hợp với giá trị biểu thức theo phép toán đưa kết vào biến, tức thực phép toán trước gán a *= 5; //lệnh tương đương với lệnh a = a*5; Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 24 Câu lệnh gán biểu thức gán (tiếp) Biểu thức gán Biểu thức gán biểu thức có dạng: v=e (Sau biểu thức gán dấu chấm phẩy) v biến, e biểu thức Biểu thức gán thực gán e vào v Giá trị biểu thức gán giá trị biểu thức e, kiểu biểu thức gán kiểu biến v Biểu thức gán sử dụng biểu thức khác, chẳng hạn đem gán giá trị vào biến Ví dụ: sau lệnh a = b = 5; a b biểu thức gán đưa vào b lệnh gán đưa giá trị biểu thức gán b=5 vào a Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 25 Việc chuyển đổi kiểu giá trị thường diễn cách tự động hai trường hợp sau: Khi biểu có toán hạng khác kiểu Khi gán giá trị kiểu cho biến kiểu khác Chuyển đổi kiểu biểu thức: Khi hai toán hạng phép toán có kiểu khác kiểu thấp nâng thành kiểu cao Kết thu giá trị có kiểu cao Ví dụ: int long int chuyển thành long int float int chuyển thành float Bài giảng LTHDT-Phần 1, Chương GV Ngô Công Thắng 27 Nhiều lệnh đặt dấu ngoặc { } tạo thành khối lệnh { a=2; b=3; cout[...]... cấu trúc và lập trình hướng đối tượng II Các khái niệm cơ bản trong lập trình hướng đối tượng III Các ngôn ngữ lập trình hướng đối tượng IV Phân tích và thiết kế theo hướng đối tượng Bài giảng LTHDT-Phần 2,Chương 1 GV Ngô Công Thắng 2 I Lập trình cấu trúc và lập trình hướng đối tượng 1 Lập trình cấu trúc 2 Lập trình hướng đối tượng Bài giảng LTHDT-Phần 2,Chương 1 Tư tưởng chính của lập trình cấu trúc... Ngô Công Thắng tượng nhận thông báo, tên hàm cần thực hiện và thông tin truyền đi Cấu trúc một thông báo như sau: Tên _đối_ tượng. Tên_hàm (Đối_ số) Đối tượng 33 III Các ngôn ngữ lập trình hướng đối tượng Bài giảng LTHDT-Phần 2,Chương 1 Thông báo truyền đi phải chỉ ra được tên đối 35 Thông báo Thông tin Bài giảng LTHDT-Phần 2,Chương 1 GV Ngô Công Thắng 34 III Các ngôn ngữ lập trình hướng đối tượng (tiếp)... chương trình Hàm thành viên Hàm thành viên Đối tượng Đối tượng Dữ liệu Dữ liệu Hàm thành viên Hàm thành viên Hàm thành viên Hàm thành viên Mô hình lập trình hướng đối tượng Bài giảng LTHDT-Phần 2,Chương 1 Dữ liệu phòng kinh doanh 9 GV Ngô Công Thắng Phòng kinh doanh Bài giảng LTHDT-Phần 2,Chương 1 Nhân viên phòng kinh doanh cách tổ chức chương trình (OOP) Hướng đối tượng là phải xem thiết kế chương trình. .. Công Thắng 11 Bài giảng LTHDT-Phần 2,Chương 1 GV Ngô Công Thắng 12 II Các khái niệm cơ bản trong lập trình hướng đối tượng Người ta đã tổng hợp các đặc tính của LTHDT: 1 Tất cả đều là đối tượng 2 Chương trình phần mềm có thể coi là một tập hợp các đối tượng tương tác với nhau 3 Mỗi đối tượng trong chương trình có các dữ liệu độc lập của mình và chiếm bộ nhớ riêng của mình 4 Mỗi đối tượng đều có dạng... các đối tượng đó 5 Tất cả các đối tượng thuộc về cùng một lớp đều có các hành vi giống nhau Bài giảng LTHDT-Phần 2,Chương 1 GV Ngô Công Thắng 13 Như ta đã biết, đối tượng là một thành phần chương trình chứa cả dữ liệu và các hàm thao tác trên dữ liệu đó Trong lập trình hướng đối tượng chúng ta không đi tìm cách chia chương trình thành các hàm mà đi tìm cách chia chương trình thành các đối tượng. .. chương trình gọi là đối tượng Cách duy nhất để truy nhập dữ liệu của một đối tượng là thông qua các hàm của đối tượng đó (trong C++, các hàm của đối tượng được gọi là các hàm thành viên) Nếu ta muốn đọc dữ liệu trong một đối tượng thì ta phải gọi một hàm thành viên của đối tượng đó Hàm thành viên này sẽ đọc dữ liệu và trả về giá trị cho ta Ta không thể truy nhập trực tiếp dữ liệu của đối tượng Bài giảng. .. Phân tích và thiết kế theo hướng đối tượng Quá trình phân tích hướng đối tượng thể hiện qua sơ đồ sau: Các bước phân tích hướng đối tượng: Bước 1: Tìm hiểu bài toán Bước 2: Xác định rõ các đặc tả yêu cầu của người sử dụng, của hệ thống phần mềm Bước 3: Xác định các đối tượng và thuộc tính của chúng Bước 4: Xác định các hàm mà đối tượng sẽ phải thực hiện (hành vi của đối tượng) Bước 5: Xác định mối... lớp đối tượng (gọi tắt là lớp) là một mô tả về một số đối tượng tương tự nhau Nó xác định dữ liệu gì và các hàm nào sẽ có trong các đối tượng của lớp đó Khái niệm lớp trong lập trình hướng đối tượng giống khái niệm lớp trong sinh học Ví dụ: cá chép, cá trôi, cá mè đều thuộc lớp cá Nếu so sánh với các kiểu dữ liệu thì lớp giống như kiểu dữ liệu, còn đối tượng giống như các biến của kiểu đó Bài giảng. .. ảnh hưởng tới chương trình của những người sử dụng lớp này C++ sử dụng các từ khóa sau để xác định khả năng truy nhập các thông tin dữ liệu từ bên ngoài lớp: public, private, và protected Bài giảng LTHDT-Phần 2,Chương 1 GV Ngô Công Thắng 32 Chương trình hướng đối tượng bao gồm một tập các đối tượng và mối quan hệ giữa các đối tượng với nhau Các đối tượng gửi và nhận thông tin với nhau giống như... hướng đối tượng có thể cài đặt trong nhiều ngôn ngữ lập trình khác nhau như C, Pascal Tuy nhiên, nếu sử dụng những ngôn ngữ không phải là ngôn ngữ hướng đối tượng thì sẽ gặp rất nhiều khó khăn, nhất là với những chương trình lớn và phức tạp Những ngôn ngữ được thiết kế để hỗ trợ cho việc mô tả, cài đặt các khái niệm của phương pháp lập trình hướng đối tượng gọi chung là ngôn ngữ hướng đối tượng GV Ngô