giáo trình lập trình hướng đối tượng full

294 446 1
giáo trình lập trình hướng đối tượng full

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHươNG 1 CáC KHáI NIệM Cơ Sở của LậP TRìNH HướNG ĐốI TượNG Ch ng 1 trình b y nh ng v n sau:ươ à ữ ấ đề Th o lu n v cách ti p c n h ng i t ng,ả ậ ề ế ậ ướ đố ượ nh ng nh c i m c a l p trình truy n th ngữ ượ đ ể ủ ậ ề ố v các c i m c a l p trình h ng ià đặ đ ể ủ ậ ướ đố t ng.ượ  Các khái ni m c s c a ph ng phápệ ơ ở ủ ươ h ng i t ng: ướ đố ượ • i t ng Đố ượ • L p ớ • Tr u t ng hóa d li u v bao gói thông tinừ ượ ữ ệ à • K th aế ừ • T ng ng b i ươ ứ ộ • Liên k t ngế độ • Truy n thông báoề  Các b c c n thi t thi t k ch ngướ ầ ế để ế ế ươ trình theo h ng i t ngướ đố ượ 1  Các u i m c a l p trình h ng iư đ ể ủ ậ ướ đố t ngượ  Các ngôn ng h ng i t ngữ ướ đố ượ  M t s ng d ng c a l p trình h ng iộ ố ứ ụ ủ ậ ướ đố t ngượ 1.1. Gi i thi uớ ệ 1.1.1. Ti p c n h ng i t ngế ậ ướ đố ượ Trong th gi i th c, chung quanh chúng ta lế ớ ự à nh ng i t ng, ó l các th c th có m iữ đố ượ đ à ự ể ố quan h v i nhau. Ví d các ệ ớ ụ phòng trong m tộ công ty kinh doanh c xem nh nh ng iđượ ư ữ đố t ng. Các ượ phòng ây có th l : phòng qu nở đ ể à ả lý, phòng bán h ng, phòng k toán, phòng ti pà ế ế th , M i ị ỗ phòng ngo i nh ng cán b m nhi mà ữ ộ đả ệ nh ng công vi c c th , còn có nh ng d li uữ ệ ụ ể ữ ữ ệ riêng nh thông tin v nhân viên, doanh s bánư ề ố h ng, ho c các d li u khác có liên quan n bà ặ ữ ệ đế ộ ph n ó. Vi c phân chia các phòng ch c n ngậ đ ệ ứ ă trong công ty s t o i u ki n d d ng cho vi cẽ ạ đ ề ệ ễ à ệ qu n lý các ho t ng. M i nhân viên trongả ạ độ ỗ phòng s i u khi n v x lý d li u c a phòngẽ đ ề ể à ử ữ ệ ủ ó. Ví d phòng k toán ph trách v l ngđ ụ ế ụ ề ươ 2 b ng nhân viên trong công ty. N u b n ang ổ ế ạ đ ở b ph n ti p th v c n tìm thông tin chi ti t vộ ậ ế ị à ầ ế ề l ng c a n v mình thì s g i yêu c u vươ ủ đơ ị ẽ ở ầ ề phòng k toán. V i cách l m n y b n cế ớ à à ạ đượ m b o l ch có nhân viên c a b ph n kđả ả à ỉ ủ ộ ậ ế toán c quy n truy c p d li u v cung c pđượ ề ậ ữ ệ à ấ thông tin cho b n. i u n y c ng cho th y r ng,ạ Đ ề à ũ ấ ằ không có ng i n o thu c b ph n khác có thườ à ộ ộ ậ ể truy c p v thay i d li u c a b ph n kậ à đổ ữ ệ ủ ộ ậ ế toán. Khái ni m nh th v i t ng h u nhệ ư ế ề đố ượ ầ ư có th c m r ng i v i m i l nh v c trongể đượ ở ộ đố ớ ọ ĩ ự i s ng xã h i v h n n a - i v i vi c tđờ ố ộ à ơ ữ đố ớ ệ ổ ch c ch ng trình. M i ng d ng có th cứ ươ ọ ứ ụ ể đượ nh ngh a nh m t t p các th c th - ho c cácđị ĩ ư ộ ậ ự ể ặ i t ng, sao cho quá trình tái t o nh ng suyđố ượ ạ ữ ngh a c a chúng ta l g n sát nh t v th gi iĩ ủ à ầ ấ ề ế ớ th c.ự Trong ph n ti p theo chúng ta s xem xétầ ế ẽ ph ng pháp l p trình truy n th ng t óươ ậ ề ố để ừ đ th y r ng vì sao chúng ta c n chuy n sangấ ằ ầ ể ph ng pháp l p trình h ng i t ng.ươ ậ ướ đố ượ 3 1.1.2. Nh ng nh c i m c a l p trình h ngữ ượ đ ể ủ ậ ướ th t c ủ ụ Cách ti p c n l p trình truy n th ng l l pế ậ ậ ề ố à ậ trình h ng th t c (LTHTT). Theo cách ti pướ ủ ụ ế c n n y thì m t h th ng ph n m m c xemậ à ộ ệ ố ầ ề đượ nh l dãy các công vi c c n th c hi n nh cư à ệ ầ ự ệ ư đọ d li u, tính toán, x lý, l p báo cáo v in nữ ệ ử ậ à ấ k t qu v.v M i công vi c ó s c th cế ả ỗ ệ đ ẽ đượ ự hi n b i m t s h m nh t nh. Nh v y tr ngệ ở ộ ố à ấ đị ư ậ ọ tâm c a cách ti p c n n y l các h m ch củ ế ậ à à à ứ n ng. LTHTT s d ng k thu t phân rã h mă ử ụ ỹ ậ à ch c n ng theo cách ti p c n trên xu ng (top-ứ ă ế ậ ố down) t o ra c u trúc phân c p. Các ngôn ngđể ạ ấ ấ ữ l p trình b c cao nh COBOL, FORTRAN,ậ ậ ư PASCAL, C, v.v , l nh ng ngôn ng l p trìnhà ữ ữ ậ h ng th t c. ướ ủ ụ Nh ng nh c i m chính c aữ ượ đ ể ủ LTHTT l :à Ch ng trình khó ki m soát v khó kh n trongươ ể à ă vi c b sung, nâng c p ch ng trình. Ch ngệ ổ ấ ươ ươ trình c xây d ng theo cách TCHTT th cđượ ự ự ch t l danh sách các câu l nh m theo ó máyấ à ệ à đ tính c n th c hi n. Danh sách các l nh óầ ự ệ ệ đ 4 c t ch c th nh t ng nhóm theo n vđượ ổ ứ à ừ đơ ị c u trúc c a ngôn ng l p trình v c g iấ ủ ữ ậ à đượ ọ l h m/th t c. Trong ch ng trình có nhi uà à ủ ụ ươ ề h m/th t c, th ng thì có nhi u th nh ph nà ủ ụ ườ ề à ầ d li u quan tr ng s c khai báo t ng thữ ệ ọ ẽ đượ ổ ể (global) các h m/th t c có th truy nh p,để à ủ ụ ể ậ c v l m thay i giá tr c a bi n t ng th .đọ à à đổ ị ủ ế ổ ể i u n y s l m cho ch ng trình r t khóĐ ề à ẽ à ươ ấ ki m soát, nh t l i v i các ch ng trìnhể ấ à đố ớ ươ l n, ph c t p thì v n c ng tr nên khóớ ứ ạ ấ đề à ở kh n h n. Khi ta mu n thay i, b sung c uă ơ ố đổ ổ ấ trúc d li u dùng chung cho m t s h m/thữ ệ ộ ố à ủ t c thì ph i thay i h u nh t t c cácụ ả đổ ầ ư ấ ả h m/th t c liên quan n d li u ó. à ủ ụ đế ữ ệ đ Mô hình c xây d ng theo cách ti p c nđượ ự ế ậ h ng th t c không mô t c y ,ướ ủ ụ ả đượ đầ đủ trung th c h th ng trong th c t .ự ệ ố ự ế Ph ng pháp TCHTT t tr ng tâm v o h mươ đặ ọ à à l h ng t i ho t ng s không th c sà ướ ớ ạ độ ẽ ự ự t ng ng v i các th c th trong h th ng c aươ ứ ớ ự ể ệ ố ủ th gi i th c.ế ớ ự 5 1.1.3. L p trình h ng i t ngậ ướ đố ượ L p trình h ng i t ng (Object Orientedậ ướ đố ượ Programming - LTH T) l ph ng pháp l pĐ à ươ ậ trình l y i t ng l m n n t ng xây d ngấ đố ượ à ề ả để ự thu t gi i, xây d ng ch ng trình. i t ngậ ả ự ươ Đố ượ c xây d ng trên c s g n c u trúc d li uđượ ự ơ ở ắ ấ ữ ệ v i các ph ng th c (các h m/th t c) s thớ ươ ứ à ủ ụ ẽ ể hi n c úng cách m chúng ta suy ngh , baoệ đượ đ à ĩ quát v th gi i th c. LTH T cho phép ta k tề ế ớ ự Đ ế h p nh ng tri th c bao quát v các quá trình v iợ ữ ứ ề ớ nh ng khái ni m tr u t ng c s d ng trongữ ệ ừ ượ đượ ử ụ máy tính. i m c n b n c a ph ng pháp LTH T lĐ ể ă ả ủ ươ Đ à thi t k ch ng trình xoay quanh d li u c a hế ế ươ ữ ệ ủ ệ th ng. Ngh a l các thao tác x lý c a h th ngố ĩ à ử ủ ệ ố c g n li n v i d li u v nh v y khi có sđượ ắ ề ớ ữ ệ à ư ậ ự thay i c a c u trúc d li u thì ch nh h ngđổ ủ ấ ữ ệ ỉ ả ưở n m t s ít các ph ng th c x lý liên quan.đế ộ ố ươ ứ ử LTH T không cho phép d li u chuy n ngĐ ữ ệ ể độ t do trong h th ng. D li u c g n ch t v iự ệ ố ữ ệ đượ ắ ặ ớ t ng ph ng th c th nh các vùng riêng m cácừ ươ ứ à à ph ng th c ó tác ng lên v nó c b o vươ ứ đ độ à đượ ả ệ 6 c m vi c truy nh p tùy ti n t bên ngo i.để ấ ệ ậ ệ ừ à LTH T cho phép phân tích b i toán th nh t pĐ à à ậ 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 v i các ph ngđ ự ữ ệ ớ ươ th c xung quanh các i t ng ó. ứ đố ượ đ Tóm l i LTH T có nh ng c tính ch y uạ Đ ữ đặ ủ ế nh sau:ư 1. T p trung v o d li u thay cho các ph ngậ à ữ ệ ươ th c.ứ 2. Ch ng trình c chia th nh các l p iươ đượ à ớ đố t ng.ượ 3. Các c u trúc d li u c thi t k sao choấ ữ ệ đượ ế ế c t c các i t ng.đặ ả đượ đố ượ 4. Các ph ng th c xác nh trên các vùng dươ ứ đị ữ li u c a i t ng c g n v i nhau trên c uệ ủ đố ượ đượ ắ ớ ấ trúc d li u ó.ữ ệ đ 5. D li u c bao b c, che d u v khôngữ ệ đượ ọ ấ à cho phép các th nh ph n bên ngo i truy nh p tà ầ à ậ ự do. 6. Các i t ng trao i v i nhau thông quađố ượ đổ ớ các ph ng th c.ươ ứ 7 7. D li u v các ph ng th c m i có th dữ ệ à ươ ứ ớ ể ễ d ng b sung v o i t ng n o ó khi c nà ổ à đố ượ à đ ầ thi t.ế 8. Ch ng trình c thi t k theo cách ti pươ đượ ế ế ế c n bottom-up (d i -lên).ậ ướ 1.2. Các khái ni m c b n c a l p trình h ng ệ ơ ả ủ ậ ướ i t ngđố ượ Nh ng khái ni m c b n trong LTH T baoữ ệ ơ ả Đ g m:ồ i t ng; L p; Tr u t ng hóa d li u,Đố ượ ớ ừ ượ ữ ệ bao gói thông tin; K th a; T ng ng b i; Liênế ừ ươ ứ ộ k t ng; Truy n thông báo.ế độ ề 1.2.1. i t ngĐố ượ Trong th gi i th c, khái ni m i t ngế ớ ự ệ đố ượ c hi u nh l m t th c th , nó có th lđượ ể ư à ộ ự ể ể à ng i, v t ho c m t b ng d li u c n x lýườ ậ ặ ộ ả ữ ệ ầ ử trong ch ng trình, Trong LTH T thì iươ Đ đố t ng l bi n th hi n c a ượ à ế ể ệ ủ l pớ . 1.2.2. L p ớ L pớ l m t khái ni m m i trong LTH T soà ộ ệ ớ Đ v i k thu t LTHTT. Nó l m t b n m u mô tớ ỹ ậ à ộ ả ẫ ả các thông tin c u trúc d li u v các thao tác h pấ ữ ệ à ợ 8 l c a các ph n t d li u. Khi m t ph n t dệ ủ ầ ử ữ ệ ộ ầ ử ữ li u c khai báo l ph n t c a m t l p thìệ đượ à ầ ử ủ ộ ớ nó c g i l đượ ọ à i t ngđố ượ . Các h m c nhà đượ đị ngh a h p l trong m t l p c g i l cácĩ ợ ệ ộ ớ đượ ọ à ph ng th cươ ứ (method) v chúng l các h m duyà à à nh t có th x lý d li u c a các i t ng c aấ ể ử ữ ệ ủ đố ượ ủ l p ó. M i i t ng có riêng cho mình m tớ đ ỗ đố ượ ộ b n sao các ph n t d li u c a l p. M i l pả ầ ử ữ ệ ủ ớ ỗ ớ bao g m: danh sách các thu c tính (attribute) vồ ộ à danh sách các ph ng th c x lý các thu cươ ứ để ử ộ tính ó. Công th c ph n ánh b n ch t c a kđ ứ ả ả ấ ủ ỹ thu t LTH T l :ậ Đ à i t ng = D li u + Ph ngĐố ượ ữ ệ ươ th cứ Ch ng h n, chúng ta xét l p HINH_CN baoẳ ạ ớ g m các thu c tính: (x1,y1) to góc trên bênồ ộ ạ độ trái, d,r l chi u d i v chi u r ng c a HCN.à ề à à ề ộ ủ Các ph ng th c nh p s li u cho HCN, h mươ ứ ậ ố ệ à tính di n tích, chu vi v h m hi n th . L pệ à à ể ị ớ HINH_CN có th c mô t nh sau:ể đượ ả ư 9 HINH_CN Thu cộ tính : x1,y1 d,r Ph ngươ th cứ : Nh p_slậ Di n tíchệ Chu vi Hi n thể ị 10 [...]... của phương pháp hướng đối tượng được gọi chung là ngôn ngữ đối tượng Dựa vào khả năng đáp ứng các khái niệm về hướng đối tượng, ta có thể chia ra làm hai loại: 1 Ngôn ngữ lập trình dựa trên đối tượng 18 2 Ngôn ngữ lập trình hướng đối tượng Lập trình dựa trên đối tượng là kiểu lập trình hỗ trợ chính cho việc bao gói, che giấu thông tin và định danh các đối tượng Lập trình dựa trên đối tượng có những... và truy nhập dữ liệu • Tự động tạo lập và xóa bỏ các đối tượng • Phép toán tải bội Ngôn ngữ hỗ trợ cho kiểu lập trình trên được gọi là ngôn ngữ lập trình dựa trên đối tượng Ngôn ngữ trong lớp này không hỗ trợ cho việc thực hiện kế thừa và liên kết động, chẳng hạn Ada là ngôn ngữ lập trình dựa trên đối tượng Lập trình hướng đối tượng là kiểu lập trình dựa trên đối tượng và bổ sung thêm nhiều cấu trúc... (Hoten) Đối tượng Thông báo Thông tin Trong chương trình hướng đối tượng, mỗi đối tượng chỉ tồn tại trong thời gian nhất định Đối tượng được tạo ra khi nó được khai báo và sẽ bị hủy bỏ khi chương trình ra khỏi miền xác định của đối tượng đó Sự trao đổi thông tin chỉ có thể thực hiện trong thời gian đối tượng tồn tại 1.3 Các bước cần thiết để thiết kế chương trình theo hướng đối tượng Chương trình theo hướng. .. của người phát triển phần mềm 1.5 Các ngôn ngữ hướng đối tượng Lập trình hướng đối tượng không là đặc quyền của một ngôn ngữ nào đặc biệt Cũng giống như lập trình có cấu trúc, những khái niệm trong lập trình hướng đối tượng có thể cài đặt trong những ngôn ngữ lập trình như C hoặc Pascal, Tuy nhiên, đối với những chương trình lớn thì vấn đề lập trình sẽ trở nên phức tạp Những ngôn ngữ được thiết kế... theo 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 Vì vậy, lập trình trong ngôn ngữ hướng đối tượng bao gồm các bước sau: 1 Xác định các dạng đối tượng (lớp) của bài tóan 15 2 Tìm kiếm các đặc tính chung (dữ liệu chung) trong các dạng đối tượng này, những gì chúng cùng nhau chia xẻ 3 Xác định lớp cơ sở dựa trên cơ sở các đặc tính chung của các dạng đối tượng 4... lý che giấu thông tin giúp người lập trình tạo ra được những chương trình an toàn không bị thay bởi những đoạn chương trình khác 4 Có thể xây dựng được ánh xạ các đối tượng của bài toán vào đối tượng của chương trình 5 Cách tiếp cận thiết kế đặt trọng tâm vào đối tượng, giúp chúng ta xây dựng được mô hình chi tiết và gần với dạng cài đặt hơn 6 Những hệ thống hướng đối tượng dễ mở rộng, nâng cấp thành... thể nhận biết ngay từ văn bản chương trình, ngược lại đối tượng là khái niệm động, nó được xác định trong bộ nhớ của máy tính, nơi đối tượng chiếm một vùng bộ nhớ lúc thực hiện chương trình Đối tượng được tạo ra để xử lý thông tin, thực hiện nhiệm vụ được thiết kế, sau đó bị hủy bỏ khi đối tượng đó hết vai trò 1.2.3 Trừu tượng hóa dữ liệu và bao gói thông tin Trừu tượng hóa là cách biểu diễn những đặc... dạng đối tượng Ngoài ra, ta còn đưa ra các lớp có quan hệ với các lớp cơ sở và lớp dẫn xuất 1.4 Các ưu điểm của lập trình hướng đối tượng Cách tiếp cận hướng đối tượng giải quyết được nhiều vấn đề tồn tại trong quá trình phát triển phần mềm và tạo ra được những sản phẩm phần mềm có chất lượng cao Những ưu điểm chính của LTHĐT là: 1 Thông qua nguyên lý kế thừa, có thể loại bỏ được những đoạn chương trình. .. chương trình, thông báo gửi đến cho một đối tượng chính là yêu cầu thực hiện một công việc cụ thể, nghĩa là sử dụng những hàm tương ứng để xử lý dữ liệu đã được khai báo trong đối tượng đó Vì vậy, trong thông báo phải chỉ ra được hàm cần thực hiện trong đối tượng nhận thông báo Thông báo truyền đi cũng phải xác định tên đối tượng và thông tin truyền đi Ví dụ, lớp CONGNHAN có thể hiện là đối tượng cụ... phương thức của lớp sẽ đóng vai trò như là giao diện giữa dữ liệu của đối tượng và phần còn lại của chương trình Nguyên tắc bao gói dữ liệu để ngăn cấm sự truy nhập trực tiếp trong lập trình được gọi là sự che giấu thông tin 1.2.4 Kế thừa Kế thừa là quá trình mà các đối tượng của lớp này được quyền sử dụng một số tính chất của các đối tượng của lớp khác Sự kế thừa cho phép ta định nghĩa một lớp mới trên . KHáI NIệM Cơ Sở của LậP TRìNH HướNG ĐốI TượNG Ch ng 1 trình b y nh ng v n sau:ươ à ữ ấ đề Th o lu n v cách ti p c n h ng i t ng,ả ậ ề ế ậ ướ đố ượ nh ng nh c i m c a l p trình truy n th ngữ. hai lo i:ể à ạ 1. Ngôn ng l p trình d a trên i t ngữ ậ ự đố ượ 18 2. Ngôn ng l p trình h ng i t ngữ ậ ướ đố ượ L p trình d a trên i t ng l ki u l pậ ự đố ượ à ể ậ trình h tr chính cho vi c bao. ng pháp l p trình truy n th ng t óươ ậ ề ố để ừ đ th y r ng vì sao chúng ta c n chuy n sangấ ằ ầ ể ph ng pháp l p trình h ng i t ng.ươ ậ ướ đố ượ 3 1.1.2. Nh ng nh c i m c a l p trình h ngữ

Ngày đăng: 03/07/2014, 08:10

Từ khóa liên quan

Mục lục

  • 1.1. Giới thiệu

    • 1.1.1. Tiếp cận hướng đối tượng

    • 1.1.2. Những nhược điểm của lập trình hướng thủ tục

    • 1.1.3. Lập trình hướng đối tượng

    • 1.2. Các khái niệm cơ bản của lập trình hướng đối tượng

      • 1.2.1. Đối tượng

      • 1.2.2. Lớp

      • 1.2.3. Trừu tượng hóa dữ liệu và bao gói thông tin

      • 1.2.4. Kế thừa

      • 1.2.5. Tương ứng bội

      • 1.2.6. Liên kết động

      • 1.2.7. Truyền thông báo

      • 1.3. Các bước cần thiết để thiết kế chương trình theo hướng đối tượng

      • 1.4. Các ưu điểm của lập trình hướng đối tượng

      • 1.5. Các ngôn ngữ hướng đối tượng

      • 1.6. Một số ứng dụng của LTHĐT

      • 2.1. Giới thiệu chung về C++

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

        • 2.2.1. Đặt lời chú thích

        • 2.2.2. Khai báo biến

        • 2.2.3. Phép chuyển kiểu bắt buộc

        • 2.2.4. Lấy địa chỉ các phần tử mảng thực 2 chiều

        • 2.3. Vào ra trong C++

          • 2.3.1. Xuất dữ liệu

Tài liệu cùng người dùng

Tài liệu liên quan