Giáo trình C++_Lớp và đối tượng
Số trang: 46
Loại file: pdf
Dung lượng: 424.91 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo tài liệu giáo trình c++_lớp và đối tượng, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình C++_Lớp và đối tượngChương 7. Lớp và đối tư ợng CHƯƠNG 7 LỚP VÀ ĐỐI TƯỢNG Lập trình có cấu trúc và lập trình hướng đối tượng Lớp và đối tượng Đối của phương thức - Con trỏ this Hàm tạo (contructor) Hàm hủy (destructor) Các hàm trực tuyến (inline)I. LẬP TRÌNH CÓ CẤU TRÚC VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1. Phương pháp lập trình cấu trúc 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. Trong một số ngôn ngữ như PASCAL có 2 kiểu chương trình con là thủ tục và hàm, còn trong C++ chỉ có một loại chương trình con là hàm. Hàm là một đơn vị chương trình độc lập dùng để thực hiện một phần việc nào đó như: Nhập số liệu, in kết quả hay thực hiện một số công việc tính toán. Hàm cần có đối và các biến, mảng cục bộ dùng riêng cho hàm. Việc trao đổi dữ liệu giữa các hàm thực hiện thông qua các đối và các biến toàn cục. Một chương trình cấu trúc gồm các cấu trúc dữ liệu (như biến, mảng, bản ghi) và các hàm, thủ tục. Nhiệm vụ chính của việc tổ chức thiết kế chương trình cấu trúc là tổ chức chương trình thành các hàm, thủ tục. Ví d ụ, ta xét yêu cầu sau: Viết ch ương trình nhập toạ độ (x,y) của một d ãyđiểm, sau đó tìm một cặp đ iểm cách xa nhau nhất. Trên tư tưởng của lập trình cấu trúc có thể tổ chức chương trình như sau: Sử dụng 2 mảng thực to àn bộ x và y đ ể chứa toạ độ dãy đ iểm. Xây dựng 2 hàm: Hàm nhapsl dùng đ ể nhập toạ độ n đ iểm, h àm này có một đối là biến nguyênn và được khai báo như sau: v oid nhapsl(int n); Hàm do_dai dùng để tính độ dài đoạn thẳng đi qua 2 đ iểm có chỉ số là i và j,212Chương 7. Lớp và đối tượngnó được khai báo như sau: float do_dai(int i, int j); Ch ương trình C của ví dụ trên được viết như sau: #include #include #include float x[100],y[100]; float do_dai(int i, int j) { return sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2)); } void nhapsl(int n) { int i; for (i=1; iChương 7. Lớp và đối tư ợng { dmax=d; imax=i; jmax=j; } } printf( Doan thang lon nhat co do dai bang: %0.2f,dmax); printf( Di qua 2 diem co chi so la %d va %d,imax,jmax); getch(); } 2. Phương pháp lập trình hướng đối tượng Là lập trình có cấu trúc + trừu tượng hóa dữ liệu. Có nghĩa chương trình tổchức dưới dạng cấu trúc. Tuy nhiên việc thiết kế chương trình sẽ xoay quanh dữliệu, lấy dữ liệu làm trung tâm. Ngh ĩa là trả lời câu hỏi: Chươn g trình làm việc vớinhững đối tượng dữ liệu n ào, trên các đối tượng dữ liệu này cần thao tác, thực hiệnnhững gì. Từ đó gắn với mỗi đối tượng dữ liệu một số thao tác thực hiên cố địnhriêng của đối tượng dữ liệu đó, điều này sẽ qui định chặt chẽ hơn những thao tácn ào được thực hiện trên đối tượng dữ liệu nào. Khác với lập trình cấu trúc thuầntúy, trong đó d ữ liệu đ ược khai báo riêng rẽ, tách rời với thao tác xử lý, do đó việcxử lý dữ liệu thường không thống nhất khi chương trình đ ược xây dựng từ nhiều lậptrình viên khác nhau. Từ đó lập trình hướng đối tượng được xây dựng dựa trên đặc trưng chính làkhái niệm đóng gói. Đóng gói là khái niệm trung tâm của phương pháp lập trìnhhướng đối tượng, trong đó dữ liệu và các thao tác xử lý nó sẽ được qui định trướcvà đóng thành một gói thống nhất, riêng biệt với các dữ liệu khác tạo th ành kiểudữ liệu với tên gọi là các lớp. Như vậy một lớp không chỉ chứa dữ liệu bình thư ờngnhư các kiểu dữ liệu khác m à còn chứa các thao tác để xử lý dữ liệu này. Các thaotác được khai báo trong gói dữ liệu nào chỉ xử lý dữ liệu trong gói đó và ngược lạidữ liệu trong một gói chỉ bị tác động, xử lý bởi thao tác đ ã khai báo trong gói đó.Điều này tạo tính tập trung cao khi lập trình, mọi đối tư ợng trong một lớp sẽ chứacùng lo ại dữ liệu đ ược chỉ định và cùng được xử lý bởi các thao tác như nhau. Mọilập trình viên khi làm việc với dữ liệu trong một gói đều sử dụng các thao tác nhưnhau để xử lý dữ liệu trong gói đó. C++ cung cấp cách thức để tạo một cấu trúc dữliệu mới thể hiện các gói nói trên, cấu trúc dữ liệu này được gọi là lớp. Để minh hoạ các khái niệm vừa nêu về kiêu dữ liệu lớp ta trở lại xét b ài toántìm độ dài lớn nhất đ i qua 2 đ iểm. Trong bài toán này ta gặp một thực thể là dãyđ iểm. Các thành phần dữ liệu của lớp dãy điểm gồm: Biến nguyên n là số đ iểm của dãy Con trỏ x kiểu thực trỏ đ ến vùng nhớ chứa dãy hoành độ214Chương 7. Lớp và đối tượng Con trỏ y kiểu thực trỏ đến vùng nhớ chứa dãy tung độCác phương thức cần đư a vào theo yêu cầu bài toán gồm: Nhập toạ độ một đ iểm Tính độ dài đoạn thẳng đi qua 2 điểm Dưới đây là chươ ...
Nội dung trích xuất từ tài liệu:
Giáo trình C++_Lớp và đối tượngChương 7. Lớp và đối tư ợng CHƯƠNG 7 LỚP VÀ ĐỐI TƯỢNG Lập trình có cấu trúc và lập trình hướng đối tượng Lớp và đối tượng Đối của phương thức - Con trỏ this Hàm tạo (contructor) Hàm hủy (destructor) Các hàm trực tuyến (inline)I. LẬP TRÌNH CÓ CẤU TRÚC VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1. Phương pháp lập trình cấu trúc 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. Trong một số ngôn ngữ như PASCAL có 2 kiểu chương trình con là thủ tục và hàm, còn trong C++ chỉ có một loại chương trình con là hàm. Hàm là một đơn vị chương trình độc lập dùng để thực hiện một phần việc nào đó như: Nhập số liệu, in kết quả hay thực hiện một số công việc tính toán. Hàm cần có đối và các biến, mảng cục bộ dùng riêng cho hàm. Việc trao đổi dữ liệu giữa các hàm thực hiện thông qua các đối và các biến toàn cục. Một chương trình cấu trúc gồm các cấu trúc dữ liệu (như biến, mảng, bản ghi) và các hàm, thủ tục. Nhiệm vụ chính của việc tổ chức thiết kế chương trình cấu trúc là tổ chức chương trình thành các hàm, thủ tục. Ví d ụ, ta xét yêu cầu sau: Viết ch ương trình nhập toạ độ (x,y) của một d ãyđiểm, sau đó tìm một cặp đ iểm cách xa nhau nhất. Trên tư tưởng của lập trình cấu trúc có thể tổ chức chương trình như sau: Sử dụng 2 mảng thực to àn bộ x và y đ ể chứa toạ độ dãy đ iểm. Xây dựng 2 hàm: Hàm nhapsl dùng đ ể nhập toạ độ n đ iểm, h àm này có một đối là biến nguyênn và được khai báo như sau: v oid nhapsl(int n); Hàm do_dai dùng để tính độ dài đoạn thẳng đi qua 2 đ iểm có chỉ số là i và j,212Chương 7. Lớp và đối tượngnó được khai báo như sau: float do_dai(int i, int j); Ch ương trình C của ví dụ trên được viết như sau: #include #include #include float x[100],y[100]; float do_dai(int i, int j) { return sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2)); } void nhapsl(int n) { int i; for (i=1; iChương 7. Lớp và đối tư ợng { dmax=d; imax=i; jmax=j; } } printf( Doan thang lon nhat co do dai bang: %0.2f,dmax); printf( Di qua 2 diem co chi so la %d va %d,imax,jmax); getch(); } 2. Phương pháp lập trình hướng đối tượng Là lập trình có cấu trúc + trừu tượng hóa dữ liệu. Có nghĩa chương trình tổchức dưới dạng cấu trúc. Tuy nhiên việc thiết kế chương trình sẽ xoay quanh dữliệu, lấy dữ liệu làm trung tâm. Ngh ĩa là trả lời câu hỏi: Chươn g trình làm việc vớinhững đối tượng dữ liệu n ào, trên các đối tượng dữ liệu này cần thao tác, thực hiệnnhững gì. Từ đó gắn với mỗi đối tượng dữ liệu một số thao tác thực hiên cố địnhriêng của đối tượng dữ liệu đó, điều này sẽ qui định chặt chẽ hơn những thao tácn ào được thực hiện trên đối tượng dữ liệu nào. Khác với lập trình cấu trúc thuầntúy, trong đó d ữ liệu đ ược khai báo riêng rẽ, tách rời với thao tác xử lý, do đó việcxử lý dữ liệu thường không thống nhất khi chương trình đ ược xây dựng từ nhiều lậptrình viên khác nhau. Từ đó lập trình hướng đối tượng được xây dựng dựa trên đặc trưng chính làkhái niệm đóng gói. Đóng gói là khái niệm trung tâm của phương pháp lập trìnhhướng đối tượng, trong đó dữ liệu và các thao tác xử lý nó sẽ được qui định trướcvà đóng thành một gói thống nhất, riêng biệt với các dữ liệu khác tạo th ành kiểudữ liệu với tên gọi là các lớp. Như vậy một lớp không chỉ chứa dữ liệu bình thư ờngnhư các kiểu dữ liệu khác m à còn chứa các thao tác để xử lý dữ liệu này. Các thaotác được khai báo trong gói dữ liệu nào chỉ xử lý dữ liệu trong gói đó và ngược lạidữ liệu trong một gói chỉ bị tác động, xử lý bởi thao tác đ ã khai báo trong gói đó.Điều này tạo tính tập trung cao khi lập trình, mọi đối tư ợng trong một lớp sẽ chứacùng lo ại dữ liệu đ ược chỉ định và cùng được xử lý bởi các thao tác như nhau. Mọilập trình viên khi làm việc với dữ liệu trong một gói đều sử dụng các thao tác nhưnhau để xử lý dữ liệu trong gói đó. C++ cung cấp cách thức để tạo một cấu trúc dữliệu mới thể hiện các gói nói trên, cấu trúc dữ liệu này được gọi là lớp. Để minh hoạ các khái niệm vừa nêu về kiêu dữ liệu lớp ta trở lại xét b ài toántìm độ dài lớn nhất đ i qua 2 đ iểm. Trong bài toán này ta gặp một thực thể là dãyđ iểm. Các thành phần dữ liệu của lớp dãy điểm gồm: Biến nguyên n là số đ iểm của dãy Con trỏ x kiểu thực trỏ đ ến vùng nhớ chứa dãy hoành độ214Chương 7. Lớp và đối tượng Con trỏ y kiểu thực trỏ đến vùng nhớ chứa dãy tung độCác phương thức cần đư a vào theo yêu cầu bài toán gồm: Nhập toạ độ một đ iểm Tính độ dài đoạn thẳng đi qua 2 điểm Dưới đây là chươ ...
Tìm kiếm theo từ khóa liên quan:
kỹ thuật lập trình giáo trình C++ giáo trình môn lập trình tài liệu học lập trình bài giảng môn lập trìnhGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 260 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 202 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 192 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 161 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 152 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 117 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 107 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 105 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 86 0 0