lập trình hướng đối tượng - p2

23
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NIIT.vn

Upload: hoc-vien-dao-tao-cntt-niit-inet

Post on 14-Jun-2015

663 views

Category:

Self Improvement


0 download

DESCRIPTION

Học Hướng Đối Tượng là một cách tuyệt vời để nâng cao trình độ lập trình của bạn. Khi thực thi đúng, Hướng Đối Tượng sẽ giúp bạn tạo ra những mã lệnh dễ đọc, dễ bảo trì và mang tính di động cao, giúp cho bạn tiết kiệm được rất nhiều thời gian làm việc.

TRANSCRIPT

Page 1: Lập trình hướng đối tượng - p2

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

NIIT.vn

Page 2: Lập trình hướng đối tượng - p2

CHƯƠNG II

GIỚI THIỆU VỀ C++

NIIT.vn

Page 3: Lập trình hướng đối tượng - p2

1. LỊCH SỬ CỦA C++

C++ được xây dựng trên nền của C

C dùng để viết hệ điều hành UNIX

Lịch sử của C và Unix gắn liền với nhau

UNIX được hoàn thành với C

C được phát minh bởi Dennis Ritchie năm 1972

NIIT.vn

Page 4: Lập trình hướng đối tượng - p2

1. LỊCH SỬ CỦA C++

C++ được đưa ra bởi Bjarne Stroustrup

Phiên bản đầu tiên ra mắt năm 1980, với tên “C with class”

Phiên bản thương mại đầu tiên vào năm 1985

ANSI và ISO đưa ra phiên bản C++ chuẩn

C++ hỗ trợ lập trình hướng đối tượng

NIIT.vn

Page 5: Lập trình hướng đối tượng - p2

1. LỊCH SỬ CỦA C++

Ưu điểm:

Có nhiều thư viện mẫu chuẩn STL

Là sự mở rộng của C

Hỗ trợ lập trình hướng đối tượng

Được sử dụng rộng rãi

NIIT.vn

Page 6: Lập trình hướng đối tượng - p2

2. MỞ RỘNG CỦA C++

Một số mở rộng của C++ so với C:

Lời chú thích

Từ khóa mới

Dữ liệu, khai báo biến

Chuyển kiểu

Nhập xuất

Cấp phát bộ nhớ

Biến, Hằng tham chiếu

Hàm đa năng

Toán tử đa năng

Hàm nội tuyến

Toán tử phạm vi

Con trỏ this

NIIT.vn

Page 7: Lập trình hướng đối tượng - p2

2.1. LỜI CHÚ THÍCH

Có hai cách chú thích:

Cách 1: /* ..*/

Ví dụ: /* chú thích trên

nhiều dòng*/

Cách 2: // (chú thích của C)

Ví dụ: // Chú thích trên một dòng

NIIT.vn

Page 8: Lập trình hướng đối tượng - p2

2.2. TỪ KHÓA MỚI

Một số từ khóa mới:

• Nếu trong chương trình viết bằng C có tên trùng thay đổi lại

delete catch class

new friend inline

protected operator private

this public template

virtual throw try

NIIT.vn

Page 9: Lập trình hướng đối tượng - p2

2.3. KIỂU DỮ LIỆU CHAR VÀ INT

+ Dữ liệu kiểu char:

sizeof(‘A’)=sizeof(int)=2

sizeof(‘A’)=sizeof(char)=1

Trong C hằng kí tự có kiểu int 2 byte

Trong C++ hằng kí tự có kiểu char 1 byte

+ Dữ liệu kiểu Boolean: bool

NIIT.vn

Page 10: Lập trình hướng đối tượng - p2

2.4. KHAI BÁO BIẾN

C++ cho phép khai báo biến:

Tại bất cứ đâu (cho phép khai báo biến trong vòng lập for)

Trước khi sử dụng

Có hiệu lực trong phạm vi chương trình kể từ vị trí nó xuất hiện

NIIT.vn

Page 11: Lập trình hướng đối tượng - p2

2.5. CHUYỂN ĐỔI VÀ ÉP KIỂU

C++ cho phép chuyển kiểu rộng rãi:

1. Khi gán giá trị số vào biến kiểu khác

2. Các kiểu số khác nhau trong cùng 1 biểu thức

Ép kiểu kiểu cũ: myInt = (int) myFloat

Ép kiểu kiểu mới: myInt = int (myFloat)

NIIT.vn

Page 12: Lập trình hướng đối tượng - p2

2.6. NHẬP XUẤT TRONG C++

Dòng xuất, nhập dữ liệu:

Cú pháp:

cout<<bt1<<…<<btn;

cin>>biến1>>biến..>>biếnn;

Chú ý:

Phải khai báo #include <iostream.h>

Dùng cin.ignore(1) để bỏ kí tự ‘\n’

NIIT.vn

Page 13: Lập trình hướng đối tượng - p2

2.7. CẤP PHÁT VÀ GIẢI PHÓNG BỘ NHỚ

Vẫn có thể dùng hàm malloc(), calloc(), free()

C++ sử dụng thêm hai toán tử:

new: để cấp phát bộ nhớ

Cú pháp: new tên_kiểu

delete: để giải phóng bộ nhớ

Cú pháp: delete con_trỏ

NIIT.vn

Page 14: Lập trình hướng đối tượng - p2

2.8. BIẾN THAM CHIẾU

Khái niệm:

- Giống như một bí danh của biến khác

- Cho phép hàm thao tác trực tiếp trên biến được truyền

Cú pháp: Kiểu &Biếnthamchiếu = Biến;

Ví dụ: int a, &x=a;

x=1; // a=1

cout<<x; //in ra số 1

x++; //a=2

a++; //a=3 NIIT.vn

Page 15: Lập trình hướng đối tượng - p2

2.9. HẰNG THAM CHIẾU

Cú pháp:

const Kiểu &hằngthamchiếu = Biến(hằng);

Ví dụ: int n=10;

const int &m = n;

NIIT.vn

Page 16: Lập trình hướng đối tượng - p2

2.10. HÀM ĐA NĂNG - OVERLOADING

Khi gặp hàm này, trình biên dịch gọi hàm dựa vào:

- Số lượng đối số

- Kiểu của đối số

Là các hàm có cùng tên nhưng đối số khác nhau

NIIT.vn

Page 17: Lập trình hướng đối tượng - p2

2.11. TOÁN TỬ ĐA NĂNG

+ - * / % ^ & |

~ ! = < > += -= *=

/= %= ^= &= |= << >> >>=

<<= == != <= >= && || ++

-- ->* , -> [] () new delete

- Các toán tử có thể được đa năng hóa

- Các toán tử không thể đa năng hóa

. .* :: ?: Sizeof

NIIT.vn

Page 18: Lập trình hướng đối tượng - p2

2.12. HÀM NỘI TUYẾN - INLINE

Là hàm sẽ được chèn trực tiếp tại các lời gọi hàm Có tác dụng giảm không gian bộ nhớ mà các hàm nhỏ chiếm chỗ,

đồng thời cho phép các kỹ thuật tối ưu hóa Ví dụ:

inline int max (int a, int b)

{ if (a > b) return a;

else return b; }

a = max (x, y); // hiện tương đương với "a = (x > y ? x : y);"

NIIT.vn

Page 19: Lập trình hướng đối tượng - p2

2.13. TOÁN TỬ PHẠM VI ::

Là toán tử xác định hàm thành viên của một lớp, được xây dựng bên ngoài lớp;

Cú pháp: Kiểu_trả_về Tên_lớp :: Tên_hàm(đốisố1, đốisố2...)

Dùng để tham chiếu đến các biến toàn cục trong trường hợp biến toàn cục và biến cục bộ trùng tên

Cú pháp: ::tên_biến_toàn_cục

NIIT.vn

Page 20: Lập trình hướng đối tượng - p2

2.14. CON TRỎ THIS

Con trỏ this trỏ tới địa chỉ của đối tượng, qua this ta có thể truy cập các thành viên;

Ta dùng this và toán tử -> để truy cập đến các thành viên của đối tượng ;

Ví dụ:

this->age;

this->getdata();

NIIT.vn

Page 21: Lập trình hướng đối tượng - p2

BÀI TẬP

1. Nhập ma trận thực cấp mxn:- Tìm phần tử lớn nhất- Sắp xếp tăng dần- In ma trận sau khi đã sắp xếp

2. Tính:

3. Xây dựng chương trình thao tác với phân số: nhập, in, tối giản, cộng, tích hai phân số

1...

321

2

n

xxxS

n

NIIT.vn

Page 22: Lập trình hướng đối tượng - p2

BẠN ĐÃ HIỂU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG?

Bạn đã biết cần phải làm gì?

NIIT.vn

Page 23: Lập trình hướng đối tượng - p2

GIẢI ĐÁP

Mọi thắc mắc sẽ được giải đáp trong khóa học LẬP TRÌNH WEB VỚI JAVA/JSP/SERVLET tại Học viện NIIT INET

Liên hệ: 0904 840 550 (Ms Mai)Email: [email protected] NIIT.vn