Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp

Tài liệu Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp: CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPKhái niệm về đóng gói dữ liệu Khai báo và sử dụng một lớpKhai báo và sử dụng đối tượng, con trỏ đối tượng, tham chiếu đối tượngHàm thiết lập và hàm huỷ bỏKhai báo và sử dụng hàm thiết lập sao chépVai trò của hàm thiết lập ngầm địnhCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPĐỐI TƯỢNGVí dụ mô tả một đối tượng điểm {//dữ liệuint x,y;//phuong thucvoid init(int ox,int oy);void move(int dx,int dy);void display();};Đóng gói là cơ chế liên kết các lệnh thao tác và dữ liệu có liên quan giứp cho cả hai được an toàn tránh sự can thiệp từ bên ngoài và việc sử dụng sai.Đối tượng = dữ liệu + phương thứcCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPĐỐI TƯỢNGLời gọi đến một phương thức là truyền một thông báo đến cho đối tượngCác thông điệp gởi tới đối tượng nào sẽ gắn chặt với đối tượng đóTrong C++, khi cài đặt đối tượng cho phép che dấu một bộ phận dữ liệu của đối tượng và mở rộng khả năng truy nhập đến các thành phân riêng của đối tượng CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚPLớp là một mô tả trừu tượng của nhóm của ...

ppt56 trang | Chia sẻ: Khủng Long | Lượt xem: 1063 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPKhái niệm về đóng gói dữ liệu Khai báo và sử dụng một lớpKhai báo và sử dụng đối tượng, con trỏ đối tượng, tham chiếu đối tượngHàm thiết lập và hàm huỷ bỏKhai báo và sử dụng hàm thiết lập sao chépVai trò của hàm thiết lập ngầm địnhCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPĐỐI TƯỢNGVí dụ mô tả một đối tượng điểm {//dữ liệuint x,y;//phuong thucvoid init(int ox,int oy);void move(int dx,int dy);void display();};Đóng gói là cơ chế liên kết các lệnh thao tác và dữ liệu có liên quan giứp cho cả hai được an toàn tránh sự can thiệp từ bên ngoài và việc sử dụng sai.Đối tượng = dữ liệu + phương thứcCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPĐỐI TƯỢNGLời gọi đến một phương thức là truyền một thông báo đến cho đối tượngCác thông điệp gởi tới đối tượng nào sẽ gắn chặt với đối tượng đóTrong C++, khi cài đặt đối tượng cho phép che dấu một bộ phận dữ liệu của đối tượng và mở rộng khả năng truy nhập đến các thành phân riêng của đối tượng CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚPLớp là một mô tả trừu tượng của nhóm của các đối tượng có cùng bản chấtMột đối tượng là một thể hiện cụ thể của lớp2.1 Khai báo lớp class { private: public: };...CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.1 Khai báo lớp /*point.cpp*/#include #include class point { //khai bao cac thanh phan rieng private: int x,y; //khai bao cac thanh phan cong cong public: void init(int ox, int oy); void move(int dx, int dy); void display(); };//dinh nghia cac ham thanh phan ben ngoai khai bao lopvoid point::init(int ox, int oy) { cout::(){ }Gọi hàm thành phần từ đối tượng của một lớp chính là truyền thông điệp cho hàm hàm thành phần đó, cú pháp.() CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.1.1 Tạo đối tượng Tạo đối tượng ;2.1.2 Các thành phần dữ liệu Khai báo các thành phần dữ liệu giống khai báo biến ;Khung DLPhương thứcDữ liệu cụ thể 1Tham chiếu phương thứcDữ liệu cụ thể2Tham chiếu phương thứcLớpĐối tượngĐối tượngĐối tượng là một thể hiện của lớpCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.1.3 Các hàm thành phần #include #include class point { private: int x,y; public: //dinh nghia ham thanh phan ben trong khai bao lop void init(int ox, int oy){ coutclass point { //khai bao thanh phan du lieu rieng private: int x,y; //Khai bao cac ham cong cong public: void init(int ox, int oy); void move(int dx, int dy); void display(); };#endifCHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.1.3 Các hàm thành phần Có thể đặt định hàm thành phần trong cùng tập tin khai báo lớp hoặc trong một tập tin khác Ví dụ tệp chương trình nguồn#include “point.h”#include //Dinh nghia cac ham thanh phanvoid point::init(int ox, int oy) { cout#include class point { int x,y; public: //dinh nghia chong ham thanh phan void init(); void init (int); void init (int,int); void display(); void display(char *); };void point::init() { x=y=0; }void point::init(int abs) { x=abs;y=0; }void point::int(int abs,int ord) { x=abs; y=ord; }CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.2 Khả năng của các hàm thành phần 2.2.1 Định nghĩa chồng các hàm thành phầnvoid main() { clrscr(); point a; a.init();//point::init() a.display();//point::display() point b; b.init(5); //point::init(int ) b.display("point b - ");//point::display(char *) point c; c.init(3,12); //point::init(int, int) c.display("Hello ----"); getch(); }CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.2 Khả năng của các hàm thành phần 2.2.2 Các tham số với giá trị ngầm định#include #include class point { int x,y; public: void init (int=0,int=0); void display(char *=””); };void point::int(int abs,int ord) { x=abs; y=ord; }void point::display(char *mesg) { coutx && y==pt->y);}//truyen bang con tro int coincide(point &pt) {return(x==pt.x && y==pt.y);}} }CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP2. LỚP2.2 Khả năng của các hàm thành phần 2.2.4 Con trỏ thisCon trỏ this tham chiếu đến đối tượng đang gọi hàm thành phần -> có thể truy xuất đến các thành phần của đối tượng gọi hàm thành phần gián tiếp thông qua thisVí dụ:int point::coincide(point pt) {return(this->x==pt.x && this->y==pt.y);}void point::display() { cout#include class point{ // int x; int y;public: // point(int ox,int oy) {x=ox;y=oy;}//ham thiet lap void move(int dx,int dy) ; void display(); };void point::move(int dx,int dy){ x+=dx; y+=dy; }void point::display(){ cout#include class point { int x,y; public: void init (int=0,int=0); void display(char *=””); };void point::int(int abs,int ord) { x=abs; y=ord; }void point::display(char *mesg) { coutclass point {int x; int y;public:point(int ox,int oy) {x=ox;y=oy;} void move(int dx,int dy) ; void display(); };void point::move(int dx,int dy) { x+=dx; y+=dy; }void point::display() { cout#include class point {int x; int y;public: point(int ox,int oy) {x=ox;y=oy;} point() {x = 0; y = 0;} void move(int dx,int dy) ; void display(); };void point::move(int dx,int dy) { x+=dx; y+=dy; }void point::display() { coutdisplay(); ptr->move(-2,3);- Dùng toán tử new ptr = new point(3,2); // cấp phát phát một đối tượng động, ptr trỏ đến đối tượng này ptr->display(); CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ4.1.2 Con trỏ đối tượng#include #include class point{ // int x; int y;public: // point(int ox = 1,int oy =0) {x=ox;y=oy;} void move(int dx,int dy) ; void display(); };void point::move(int dx,int dy){ x+=dx; y+=dy; }void point::display() { coutdisplay();a.move(-2,4); ptr->display();ptr->move(2,-4);a.display();CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ4.1.2 Con trỏ đối tượngptr = new pointptr->display();delete ptr;ptr = new point(3);//ptr->display();delete ptr;ptr = new point (3,5);//ptr->display();delete ptr;point b[10]; getch();}CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ4.1. 3 Tham chiếu đối tượngVí dụ:point a(2,5);point &ra=a;a.display();ra.display();ra.move(2,3);a.display(); CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚPVí dụ xây dựng lớpXây dựng lớp hàng hóa có các thuộc tính sau: Tên hàng, mã hàng, nhãn hiệu, giá bán, giá mua, số lượngCác phương thức đối với hàng hóa: nhập hàng, bán hàng, tăng giá, giám giá.Thực hiện quản lý các mặt hàng: dầu ăn, bia, nước ngọt.In ra danh các mặt hàng.CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ4.2 Hàm huỷ bỏHàm huỷ bỏ được gọi khi đối tượng bị xoá đi khỏi bộ nhớVí dụ:#include #include int line=1;class test { public: int num; test(int); ~test(); };test::test(int n) { num = n; cout#include class point {int x; int y;public:point(int ox = 1,int oy =0) { cout#include class counter { static int count; public : counter (); ~ counter (); };int counter::count=0;//khoi taocounter:: counter () { cout#include class counter { static int count; //Thanh phan du lieu tinh public : counter (); ~ counter (); static void counter_display(); };int counter::count=0; //void counter::counter_display() { cout class point {int x, y;public:point(int abs =0, int ord =0) {x = abs;y = ord;}friend int coincide (point,point);}; int coincide (point p, point q) {if ((p.x == q.x) && (p.y == q.y)) return 1;else return 0;}void main() {point a(1,0),b(1),c;if (coincide (a,b)) cout class matrix; class vect {double v[3]; public:vect (double v1=0, double v2=0, double v3=0) { v[0] = v1; v[1] = v2; v[2] = v3;}friend vect prod(matrix, vect); void display () {int i;for (int i=0; i class vect; class matrix {double mat[3][3];public:matrix(double t[3][3]) { int i; int j;for(i=0; i<3; i++)for(j=0; j<3; j++)mat[i][j] = t[i][j];}vect prod (vect); }; class vect {double v[3]; public:vect (double v1=0, double v2=0, double v3=0) { v[0] = v1; v[1] = v2; v[2] = v3;}friend vect matrix::prod(vect); void display () {int i;for (int i=0; i<3; i++) cout<<v[i]<<" ";cout<<endl;}}; CHƯƠNG 2: ĐỐI TƯỢNG VÀ LỚP7. HÀM BẠN VÀ LỚP BẠN7.4 Ví dụ bài toán nhân ma trận với vector- dùng hàm thành phần là bạn của một lớpvect matrix::prod (vect x) {int i,j;double sum;vect res; for(i=0; i<3; i++) {for(j=0,sum=0; j<3; j++)sum +=mat[i][j]*x.v[j];res.v[i] = sum;}return res;} void main() {vect w91,2,3);vect res;double tb[3][3] = {1,2,3,4,,5,6,7,8,9};matrix a=tb;res=a.prod(w); res.display(); }

Các file đính kèm theo tài liệu này:

  • ppttailieu.ppt