Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Sơn Hải
lượt xem 2
download
Mời các bạn tham khảo bài giảng Lập trình hướng đối tượng: Chương 1 do Trần Sơn Hải biên soạn sau đây để nắm bắt được những kiến thức về C++ và C; hàm cin/cout/cerr; tham chiếu; chồng hàm; tham số ngầm định trong lời gọi hàm; toán tử quản lý bộ nhớ động; lập trình cấu trúc và một số kiến thức khác.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Sơn Hải
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Trần Sơn Hải transonhai@gmail.com
- Tóm tắt nội dung môn học Phần 1: Giới thiệu Phần 2: Các khái niệm cơ bản Phần 3: Lớp và đối tượng Phần 4: Kỹ thuật thừa kế và tính đa hình Phần 5: Thiết kế chương trình hướng đối tượng Phần 6: Khuôn mẫu (template) Phần 7: Luồng nhập xuất Phần 8: Cacù mẫu thiết kế hướng đối tượng 11/26/15 Lập Trình Hướng Đối Tượng Slide 2
- Tài liệu tham khảo Stroustrup, Bjarne. The C++ Programming Language, 3rd Ed. Dietel & Dietel. C++ How to Program, 3rd Ed. 2003 Eckel, Bruce. Thinking in C++, 2nd Ed. Vol 1. Vol.2. Nguyễn Thanh Thủy …, Lập trình hướng đối tượng với C++. NXB Khoa học kỹ thuật. Gamma: Design Patterns. AddisonWesley, 1998. 11/26/15 Lập Trình Hướng Đối Tượng Slide 3
- LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chương 1: Giới thiệu
- C++ và C Sự mở rộng thứ nhất của C++ so với C Hàm xuất/nhập chuẩn Tham chiếu Chồng hàm, Tham số có giá trị ngầm định Toán tử cấp phát và giải phóng vùng nhớ động Sự mở rông thứ hai của C++ so với C là hỗ trợ lập trình hướng đối tượng 11/26/15 Lập Trình Hướng Đối Tượng Slide 5
- Hàm cin/cout/cerr #include void main() { int n; double d; char s[100]; cout > n >> d >> s; cout
- Tham chiếu Tham chiếu là địa chỉ vùng nhớ được cấp phát cho một biến. Ký hiệu & đặt trước biến hoặc hàm để xác định tham chiếu của chúng Ví dụ 1: int x = 10, *px = &x, &y = x; *px = 20; // *px = x = y = 20 y = 30; // y = x = *px = 30 Ví dụ 2: int arrget(int *a, int i) { return a[i]; } arrget(a, 1) = 1; // a[1] = 1; cin >> arrget(a,1); // cin >> a[1]; Ví dụ 3: void swap1(int x, int y) { int t = x; x = y; y = t; } void swap2(int *x, int *y) { int *t = x; x = y; y = t; } void swap3(int &x, int &y) { int t = x; x = y; y = t; } 11/26/15 Lập Trình Hướng Đối Tượng Slide 7
- Chồng hàm (Functions overloading ) int abs(int i); int abs(int i); long labs(long l); long abs(long l); double fabs(double d); double abs(double d); int abs(int i) { return abs(i);} long abs(long l) { return labs(l);} double abs(double d) { return fabs(d);} void test_abs() { int i = abs(10); // abs(int ) long l = abs(-10l); // abs(long ) double = abs(0.1l); // abs(double ) } 11/26/15 Lập Trình Hướng Đối Tượng Slide 8
- Tham số ngầm định trong lời gọi hàm void inc(int &a, int b = 1) { a = a + b; } int x = 5, y = 10; inc(x, 10); // x = x + 10 inc(y); // y = y + 1 Chuù yù: Caùc tham soá coù giaù trò ngaàm ñònh phaûi ñaët cuoái danh saùch tham soá, ñeå traùnh nhaàm laãn caùc giaù trò. Caùc giaù trò ngaàm ñònh cuûa tham soá 11/26/15 chæ ñöôïc khai baùo trong khuoân maãu Lập Trình Hướng Đối Tượng Slide 9
- Toán tử quản lý bộ nhớ động Toán tử cấp phát bộ nhớ động new int *x; x = new int; // x = (int*)malloc(sizeof(int)); char *y; y = new char[100]; // y = (char*)malloc(100); Toán tử giải phóng vùng nhớ động delete delete x; // free(x); delete y; // free(y); 11/26/15 Lập Trình Hướng Đối Tượng Slide 10
- Const Nên khai báo hằng đối với: Các đối tượng mà ta không định sửa đổi const double PI = 3.14; const Date openDate(18,8,2003); Các tham số của hàm mà ta không định cho hàm đó sửa đổi void printHeight(const LargeObj &LO) { cout
- Lập trình cấu trúc Tư tưởng của phương pháp lập trình cấu trúc là tổ chức chương trình thành các chương trình con và theo quan điểm của phương pháp lập này thì chương trình là sự kết hợp giữa cấu trúc dữ liệu và giải thuật. Điều này gây ra khó khăn: Người lập trình phải có kiến thức rất vững về cấu trúc dữ liệu 11/26/15 Lập Trình Hướng Đối Tượng Slide 12
- Lập trình cấu trúc Chương trình = Cấu trúc dữ liệu + giải thuật Giải thuật của chương trình phụ thuộc rất chặt chẽ vào cấu trúc dữ liệu, do vậy chỉ cần một thay đổi nhỏ ở cấu trúc dữ liệu cũng có thể làm thay đổi giải thuật và phải viết lại chương trình =>Như vậy, phương pháp này không thích hợp cho dự án phần mềm lớn 11/26/15 Lập Trình Hướng Đối Tượng Slide 13
- Lập trình hướng đối tượng Lập trình hướng đối tượng đặt trọng tâm vào đối tượng, yếu tố quan trọng trong quá trình phát triển chương trình và không cho phép dữ liệu biến động tự do trong hệ thống Dữ liệu được gắn chặt với các hàm thành các vùng riêng mà chỉ có các hàm đó tác động lên và cấm các hàm bên ngoài truy nhập tới một cách tùy tiện Lập trình hướng đối tượng cho phép chúng ta phân tích bài toán thành các thực thể được gọi là các đối tượng và sau đó xây dựng các dữ liệu cùng các hàm xung quanh các đối tượng đó Các đối tượng có thể tác động, trao đổi thông tin với nhau thông qua cơ chế thông báo 11/26/15 Lập Trình Hướng Đối Tượng Slide 14
- Các đặc điểm quan trọng của OO Các lớp đối tượng Classes Đóng gói – Encapsulation Thừa kế Inheritance Đa hình Polymorphism Ñ o á i t ö ô ïn g = d ö õ lie ä u + p h ö ô n g thöùc 11/26/15 Lập Trình Hướng Đối Tượng Slide 15
- Một số ngôn ngữ lập trình hướng đối tượng C# C++ Common Lisp Object System Eiffel Fortran Java ObjectiveC OCaml Object Pascal Perl PHP Python Ruby Simula Sleep Smalltalk ADA Visual FoxPro 11/26/15 Lập Trình Hướng Đối Tượng Slide 16
- Trừu tượng hóa Là cách nhìn đơn giản hóa về một đối tượng mà trong đó chỉ bao gồm những đặc điểm được quan tâm và bỏ qua những chi tiết không cầm thiết 11/26/15 Lập Trình Hướng Đối Tượng Slide 17
- Tính đóng gói Tách rời các khía cạnh giao diện với bên ngoài của đối tượng với chi tiết cài đặt bên trong. Tính đóng gói ngăn chặn khả năng một chương trình trở nên quá phụ thuộc lẫn nhau dẫn tới hậu quả một sự thay đổi nhỏ có thể ảnh hưởng lớn đến toàn bộ hệ thống. Trong tiếp cận O.O. khả năng kết hợp dữ liệu và hành vi trong một thực thể duy nhất giúp cho tính đóng gói rõ ràng hơn và hiệu quả hơn. 11/26/15 Lập Trình Hướng Đối Tượng Slide 18
- Kết hợp dữ liệu và hành vi Trong cách tiếp cận thủ tục cổ điển, hệ thống được xây dựng trên hai sơ đồ phân cấp chằng chịt: sơ đồ phân cấp dữ liệu và sơ đồ phân cấp thủ tục, trong đó sự liên hệ giữa một loại dữ liệu và các thủ tục xử lý dữ liệu rất mờ nhạt, dẫn đến khó khăn trong việc sửa chữa, nâng cấp trong tương lai. Cách tiếp cận O.O. loại bỏ những nhược điểm kể trên bằng cách kết hợp dữ liệu và phần thủ tục xử lý dữ liệu vào trong một thực thể duy nhất, hệ thống trở thành một sơ đồ phân cấp duy nhất các lớp đối tượng. 11/26/15 Lập Trình Hướng Đối Tượng Slide 19
- Đối tượng và lớp Ta định nghĩa một đối tượng là một "cái gì đó" có ý nghĩa cho vấn đề ta quan tâm. Đối tượng phục vụ hai mục đích: Giúp hiểu rõ thế giới thực và cung cấp cơ sở cho việc cài đặt trong máy. Mỗi đối tượng có một nét nhận dạng để phân biệt nó với các đối tượng khác. Nét nhận dạng mang ý nghĩa các đối tượng được phân biệt với nhau do sự tồn tại vốn có của chúng chứ không phải các tính chất mà chúng có. 11/26/15 Lập Trình Hướng Đối Tượng Slide 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 174 | 12
-
Bài giảng 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
9 p | 141 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 103 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 101 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 88 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 105 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 139 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 16 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn