SlideShare une entreprise Scribd logo
1  sur  29
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG




                     NIIT.vn
CHƯƠNG I

   GIỚI THIỆU VỀ LẬP TRÌNH
      HƯỚNG ĐỐI TƯỢNG




                         NIIT.vn
GIỚI THIỆU
Tổng quan
   Lập trình hướng đối tượng
       Lập trình định hướng đối tượng
       Object Oriented Programming (OOP)
   Đặc tính:
       Cách tiếp cận mới, hiệu quả hơn (linh hoạt, tin cậy, phát triển)
       Giúp tăng năng suất
       Dễ dàng bảo trì, sửa đổi, nâng cấp
   Mục đích:
       Giảm bớt thao tác thảo chương
       Mô tả chân thật thế giới thực

                                                                NIIT.vn
1. TỔNG QUAN VỀ CÁC KỸ THUẬT LẬP TRÌNH

 1.1 Lập trình truyền thống - Hàm/Thủ tục
    A- Lập trình phi cấu trúc (tuyến tính)
    B- Lập trình cấu trúc
    C- Lập trình môđun
    D- Nhược điểm của lập trình cấu trúc
 1.2 Lập trình hướng đối tượng
 1.3 Lập trình trí tuệ nhân tạo

                                             NIIT.vn
1.1 LẬP TRÌNH TRUYỀN THỐNG -
     HÀM/THỦ TỤC

A- Lập trình tuyến tính :
   - Còn gọi là lập trình phi cấu trúc
   - Giải quyết các bài toán tương đối nhỏ, đơn giản

   Đặc điểm:
      Chỉ có một chương trình chính
      Gồm một dãy tuần tự các câu lệnh
      Chương trình ngắn, câu lệnh ít



                                                       NIIT.vn
1.1 LẬP TRÌNH TRUYỀN THỐNG -
     HÀM/THỦ TỤC

   Nhược điểm của Lập trình tuyến tính
       Không sử dụng lại được các đoạn mã
       Không có khả năng kiểm soát phạm vi truy xuất dữ
        liệu
       Mọi dữ liệu trong chương trình là toàn cục
       Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong
        chương trình
       Không đáp ứng được việc triển khai phần mềm

                                                    NIIT.vn
1.1 LẬP TRÌNH TRUYỀN THỐNG -
     HÀM/THỦ TỤC

B- Lập trình cấu trúc
       Ra đời vào thập niên 70 thế kỷ XX:
       Chương trình được chia nhỏ thành các chương trình con:
          Thủ tục (Procedure)
          Hàm (Function)
       Đặc tính của hàm/thủ tục:
          Độc lập với nhau và có dữ liệu riêng
          Trao đổi dữ liệu qua tham số (tham số hình thức và tham số thực)
       Ngôn ngữ lập trình cấu trúc: C, Pascal, Foxpro …

                                                                NIIT.vn
1.1 LẬP TRÌNH TRUYỀN THỐNG -
     HÀM/THỦ TỤC

C- Lập trình Mô đun
   Chương trình được chia thành
    nhiều phần nhỏ
   Các thủ tục có chung một chức
    năng được nhóm lại với nhau
    (môđun)
   Mỗi môđun có dữ liệu của riêng nó
   Các phần tương tác thông qua việc
    gọi hàm/thủ tục



                                        NIIT.vn
1.1 LẬP TRÌNH TRUYỀN THỐNG -
     HÀM/THỦ TỤC
D- Nhược điểm của Lập trình truyền thống
       1. Chương trình khó kiểm soát



      2. Khó bổ sung, nâng cấp chương trình


      3. Khi thay đổi, bổ sung dữ liệu dùng chung thì phải thay
      đổi gần như tất cả thủ tục/hàm liên quan


      4. Khả năng sử dụng lại các đoạn mã chưa nhiều


      5. Không mô tả được dữ liệu đầy đủ, dữ liệu thật trong thực tế
                                                                       NIIT.vn
TIẾP CẬN HƯỚNG ĐỐI TƯỢNG

       Khái niệm trừu tượng hoá (Abtraction)
          Là khả năng quan sát sự vật mà:
              Không quan tâm tới các chi tiết không quan trọng bên trong: Trừu
               tượng hoá dữ liệu
              Không quan tâm tới việc thực hiện như thế nào: Trừu tượng hoá
               chức năng
          ie, chỉ quan tâm tới đặc điểm quan trọng, bỏ qua các chi tiết không
           liên quan
       Cho phép phân loại các vật thể sống thành các Đối tượng thuộc các kiểu
        khác nhau
       Chương trình ứng dụng có thể định nghĩa dưới dạng các Thực thể hoặc
        Đối tượng => phát triển các ứng dụng dễ hiểu, gần với cách tư duy của
        con người

                                                                     NIIT.vn
1.2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Là phương pháp lập trình:
     Mô tả chính xác các đối tượng trong thế giới
     Mô phỏng theo cách suy nghĩ của con người kết hợp giữa thực thể
      và hành vi (lớp)
     Lấy đối tượng làm nền tảng xây dựng thuật toán
     Thiết kế xoay quanh dữ liệu của hệ thống
     Chương trình được chia thành các lớp đối tượng
     Dữ liệu được đóng gói, che dấu và bảo vệ
     Đối tượng làm việc với nhau qua thông điệp
     Chương trình được thiết kế theo          NHÂN SỰ     KẾ TOÁN

       cơ chế từ dưới lên (bottom-up)


                                                    BÁN HÀNG
                                                               NIIT.vn
1.2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG




                                NIIT.vn
2. MỘT SỐ KHÁI NIỆM CƠ BẢN
2.1 Hệ thống hướng đối tượng
2.2 Đối tượng
2.3 Thuộc tính & Phương thức
2.4 Lớp & Lớp con
2.5 Lớp trừu tượng
2.6 Truyền thông điệp
2.7 Tính đóng gói
2.8 Tính kế thừa
2.9 Tính đa hình

                               NIIT.vn
2.1 HỆ THỐNG HƯỚNG ĐỐI TƯỢNG

       Là hệ thống có đặc điểm sau:
       Gồm tập hợp các đối tượng
              Sự đóng gói của 2 thành phần:
                     Dữ liệu (thuộc tính của đối tượng)
                     Các thao tác trên dữ liệu
       Các đối tượng có thể kế thừa các đặc tính của đối tượng khác
       Hoạt động thông qua sự tương tác giữa các đối tượng nhờ cơ
        chế truyền thông điệp
              Thông báo
              Gửi & nhận thông báo

                                                           NIIT.vn
2.2 ĐỐI TƯỢNG (OBJECT)

   Là khái niệm trừu tượng phản ánh các thực thể trong thế giới
    thực
     Có thể là một thực thể vật lý

     Có thể là một khái niệm trừu tượng

   Là sự thể hiện của một lớp (giống như một biến thuộc kiểu DL)
   Là các thực thể trong hệ thống hướng đối tượng
   Là sự đóng gói 2 thành phần:
     Trạng thái (state) hay dữ liệu

     Các ứng xử (behavior) hay hành vi, thao tác



                                                         NIIT.vn
2.3 THUỘC TÍNH & PHƯƠNG THỨC

   Thuộc tính (dữ liệu thành viên) bao gồm:
     Hằng, biến

     Tham số nội tại

       Kiểu dữ liệu có sẵn (cổ điển)

       Kiểu dữ liệu do người dùng định nghĩa

   Phương thức (hàm thành viên) là:
     Các hàm nội tại của đối tượng

     Có kiểu trả về




                                                NIIT.vn
2.4 LỚP (CLASS) & LỚP CON (SUBCLASS)

       Lớp:
          Là tập hợp các đối tượng có cùng thuộc tính và hành vi
          Là bản thiết kế hoặc bản mẫu mô tả một cấu trúc dữ liệu
           gồm:
           Các thành phần dữ liệu
           Các phương thức
          Được sử dụng như kiểu dữ liệu người dùng định nghĩa
       Lớp con:
         Là lớp thông thường
         Có thêm tính chất kế thừa đặc tính của lớp khác (lớp cha)



                                                             NIIT.vn
2.5 LỚP TRỪU TƯỢNG

       Là lớp mà nó không thể trở thành một lớp thực tế nào
       Được thiết kế nhằm tạo ra lớp có đặc tính tổng quát
       Bản thân nó chưa có ý nghĩa nên chưa thể viết mã cho đối tượng
          ie, không thể dùng để tạo đối tượng, dùng để tạo lớp dẫn
           xuất, chứa một hoặc nhiều hàm thuần ảo
       Ví dụ:
         Lớp hình phẳng

         Lớp động vật

         Lớp động cơ



                                                             NIIT.vn
2.6 TRUYỀN THÔNG ĐIỆP
   Thông điệp: là phương tiện để đối tượng này chuyển yêu cầu tới
    đối tượng khác.
   Một thông điệp bao gồm:
     Handle (xử lý) của đối tượng đích (đối tượng chủ)

     Tên phương thức cần thực hiện

     Các thông tin cần thiết khác (tham số)

   Hệ thống yêu cầu đối tượng thực hiện phương thức như sau:
     Gửi thông báo và tham số cho đối tượng

     Kiểm tra tính hợp lệ của thông báo

     Gọi thực hiện hàm tương ứng phương thức

                                                         NIIT.vn
2.9 TÍNH ĐA HÌNH (POLYMORPHISM)

     Là khả năng đưa một phương thức có cùng tên trong các lớp con
     là có cùng chức năng nhưng các lớp khác nhau sẽ hành xử khác
      nhau
     hỗ trợ thêm cho việc đóng gói

    Thực hiện bởi:
         Định nghĩa lại

         Nạp chồng

    Cơ chế dựa trên sự kết gán:
         Kết gán sớm

         Kết gán muộn

                                                          NIIT.vn
3. CÁC BƯỚC THIẾT KẾ CHƯƠNG TRÌNH OOP

     Các bước chính:
      Xác định các dạng đối tượng (lớp)

      Tìm dữ liệu dùng chung, chia xẻ

      Xác định lớp cơ sở dựa vào dữ liệu dùng chung

      Xây dựng lớp dẫn xuất từ lớp cơ sở




                                                       NIIT.vn
4. ƯU ĐIỂM CHÍNH CỦA OOP

     Loại bỏ các đoạn mã lặp lại
     Tạo ra các chương trình an toàn, bảo mật
     Dễ dàng mở rộng và nâng cấp
     Rút ngắn thời gian xây dựng hệ thống
     Tăng năng xuất và hiệu quả hơn
     Chương trình được thiết kế theo đúng qui
      trình

                                           NIIT.vn
5. MỘT SỐ NGÔN NGỮ OOP

    Ngôn ngữ hỗ trợ hướng đối tượng:
           Object C, Pascal, C++, Delphi…
    Ngôn ngữ hướng đối tượng:
        SmallTalk, JAVA

          Visual C++
          VB.NET, C#...




                                             NIIT.vn
6. ỨNG DỤNG CỦA OOP

   Dùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau:
     Ví dụ: hệ điều hành Windows

   Lĩnh vực chính:
     Hệ thống thời gian thực

     Cơ sở dữ liệu hướng đối tượng

     Hệ siêu văn bản, đa phương tiện

     Trí tuệ nhân tạo

     Lập trình song song, mạng nơron …




                                                        NIIT.vn
BÀI TẬP

1. Tìm Min, Max của dãy n số nguyên, thực
2. Tính tổng S=1+1/2+…+1/n
3. Sắp xếp dãy n số nguyên, thực bằng các phương pháp:
    Selection, Insert, Bubble, Quick sort, Merge sort
4. Quản lý danh sách n sinh viên thông tin gồm: họ tên, năm
    sinh, giới tính, toán, lý, hóa, điểm trung bình.
    Viết các hàm nhập danh sách, in danh sách, sắp xếp theo họ
    tên, điểm trung bình



                                                      NIIT.vn
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
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: maintn@inet.vn            NIIT.vn

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Lập trình hướng đối tượng - p1

  • 1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NIIT.vn
  • 2. CHƯƠNG I GIỚI THIỆU VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NIIT.vn
  • 3. GIỚI THIỆU Tổng quan  Lập trình hướng đối tượng  Lập trình định hướng đối tượng  Object Oriented Programming (OOP)  Đặc tính:  Cách tiếp cận mới, hiệu quả hơn (linh hoạt, tin cậy, phát triển)  Giúp tăng năng suất  Dễ dàng bảo trì, sửa đổi, nâng cấp  Mục đích:  Giảm bớt thao tác thảo chương  Mô tả chân thật thế giới thực NIIT.vn
  • 4. 1. TỔNG QUAN VỀ CÁC KỸ THUẬT LẬP TRÌNH 1.1 Lập trình truyền thống - Hàm/Thủ tục A- Lập trình phi cấu trúc (tuyến tính) B- Lập trình cấu trúc C- Lập trình môđun D- Nhược điểm của lập trình cấu trúc 1.2 Lập trình hướng đối tượng 1.3 Lập trình trí tuệ nhân tạo NIIT.vn
  • 5. 1.1 LẬP TRÌNH TRUYỀN THỐNG - HÀM/THỦ TỤC A- Lập trình tuyến tính : - Còn gọi là lập trình phi cấu trúc - Giải quyết các bài toán tương đối nhỏ, đơn giản  Đặc điểm:  Chỉ có một chương trình chính  Gồm một dãy tuần tự các câu lệnh  Chương trình ngắn, câu lệnh ít NIIT.vn
  • 6. 1.1 LẬP TRÌNH TRUYỀN THỐNG - HÀM/THỦ TỤC  Nhược điểm của Lập trình tuyến tính  Không sử dụng lại được các đoạn mã  Không có khả năng kiểm soát phạm vi truy xuất dữ liệu  Mọi dữ liệu trong chương trình là toàn cục  Dữ liệu có thể bị sửa đổi ở bất cứ vị trí nào trong chương trình  Không đáp ứng được việc triển khai phần mềm NIIT.vn
  • 7. 1.1 LẬP TRÌNH TRUYỀN THỐNG - HÀM/THỦ TỤC B- Lập trình cấu trúc  Ra đời vào thập niên 70 thế kỷ XX:  Chương trình được chia nhỏ thành các chương trình con:  Thủ tục (Procedure)  Hàm (Function)  Đặc tính của hàm/thủ tục:  Độc lập với nhau và có dữ liệu riêng  Trao đổi dữ liệu qua tham số (tham số hình thức và tham số thực)  Ngôn ngữ lập trình cấu trúc: C, Pascal, Foxpro … NIIT.vn
  • 8. 1.1 LẬP TRÌNH TRUYỀN THỐNG - HÀM/THỦ TỤC C- Lập trình Mô đun  Chương trình được chia thành nhiều phần nhỏ  Các thủ tục có chung một chức năng được nhóm lại với nhau (môđun)  Mỗi môđun có dữ liệu của riêng nó  Các phần tương tác thông qua việc gọi hàm/thủ tục NIIT.vn
  • 9. 1.1 LẬP TRÌNH TRUYỀN THỐNG - HÀM/THỦ TỤC D- Nhược điểm của Lập trình truyền thống 1. Chương trình khó kiểm soát 2. Khó bổ sung, nâng cấp chương trình 3. Khi thay đổi, bổ sung dữ liệu dùng chung thì phải thay đổi gần như tất cả thủ tục/hàm liên quan 4. Khả năng sử dụng lại các đoạn mã chưa nhiều 5. Không mô tả được dữ liệu đầy đủ, dữ liệu thật trong thực tế NIIT.vn
  • 10. TIẾP CẬN HƯỚNG ĐỐI TƯỢNG  Khái niệm trừu tượng hoá (Abtraction)  Là khả năng quan sát sự vật mà:  Không quan tâm tới các chi tiết không quan trọng bên trong: Trừu tượng hoá dữ liệu  Không quan tâm tới việc thực hiện như thế nào: Trừu tượng hoá chức năng  ie, chỉ quan tâm tới đặc điểm quan trọng, bỏ qua các chi tiết không liên quan  Cho phép phân loại các vật thể sống thành các Đối tượng thuộc các kiểu khác nhau  Chương trình ứng dụng có thể định nghĩa dưới dạng các Thực thể hoặc Đối tượng => phát triển các ứng dụng dễ hiểu, gần với cách tư duy của con người NIIT.vn
  • 11. 1.2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Là phương pháp lập trình:  Mô tả chính xác các đối tượng trong thế giới  Mô phỏng theo cách suy nghĩ của con người kết hợp giữa thực thể và hành vi (lớp)  Lấy đối tượng làm nền tảng xây dựng thuật toán  Thiết kế xoay quanh dữ liệu của hệ thống  Chương trình được chia thành các lớp đối tượng  Dữ liệu được đóng gói, che dấu và bảo vệ  Đối tượng làm việc với nhau qua thông điệp  Chương trình được thiết kế theo NHÂN SỰ KẾ TOÁN cơ chế từ dưới lên (bottom-up) BÁN HÀNG NIIT.vn
  • 12. 1.2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NIIT.vn
  • 13. 2. MỘT SỐ KHÁI NIỆM CƠ BẢN 2.1 Hệ thống hướng đối tượng 2.2 Đối tượng 2.3 Thuộc tính & Phương thức 2.4 Lớp & Lớp con 2.5 Lớp trừu tượng 2.6 Truyền thông điệp 2.7 Tính đóng gói 2.8 Tính kế thừa 2.9 Tính đa hình NIIT.vn
  • 14. 2.1 HỆ THỐNG HƯỚNG ĐỐI TƯỢNG  Là hệ thống có đặc điểm sau:  Gồm tập hợp các đối tượng  Sự đóng gói của 2 thành phần:  Dữ liệu (thuộc tính của đối tượng)  Các thao tác trên dữ liệu  Các đối tượng có thể kế thừa các đặc tính của đối tượng khác  Hoạt động thông qua sự tương tác giữa các đối tượng nhờ cơ chế truyền thông điệp  Thông báo  Gửi & nhận thông báo NIIT.vn
  • 15. 2.2 ĐỐI TƯỢNG (OBJECT)  Là khái niệm trừu tượng phản ánh các thực thể trong thế giới thực  Có thể là một thực thể vật lý  Có thể là một khái niệm trừu tượng  Là sự thể hiện của một lớp (giống như một biến thuộc kiểu DL)  Là các thực thể trong hệ thống hướng đối tượng  Là sự đóng gói 2 thành phần:  Trạng thái (state) hay dữ liệu  Các ứng xử (behavior) hay hành vi, thao tác NIIT.vn
  • 16. 2.3 THUỘC TÍNH & PHƯƠNG THỨC  Thuộc tính (dữ liệu thành viên) bao gồm:  Hằng, biến  Tham số nội tại  Kiểu dữ liệu có sẵn (cổ điển)  Kiểu dữ liệu do người dùng định nghĩa  Phương thức (hàm thành viên) là:  Các hàm nội tại của đối tượng  Có kiểu trả về NIIT.vn
  • 17. 2.4 LỚP (CLASS) & LỚP CON (SUBCLASS)  Lớp:  Là tập hợp các đối tượng có cùng thuộc tính và hành vi  Là bản thiết kế hoặc bản mẫu mô tả một cấu trúc dữ liệu gồm:  Các thành phần dữ liệu  Các phương thức  Được sử dụng như kiểu dữ liệu người dùng định nghĩa  Lớp con:  Là lớp thông thường  Có thêm tính chất kế thừa đặc tính của lớp khác (lớp cha) NIIT.vn
  • 18. 2.5 LỚP TRỪU TƯỢNG  Là lớp mà nó không thể trở thành một lớp thực tế nào  Được thiết kế nhằm tạo ra lớp có đặc tính tổng quát  Bản thân nó chưa có ý nghĩa nên chưa thể viết mã cho đối tượng  ie, không thể dùng để tạo đối tượng, dùng để tạo lớp dẫn xuất, chứa một hoặc nhiều hàm thuần ảo  Ví dụ:  Lớp hình phẳng  Lớp động vật  Lớp động cơ NIIT.vn
  • 19. 2.6 TRUYỀN THÔNG ĐIỆP  Thông điệp: là phương tiện để đối tượng này chuyển yêu cầu tới đối tượng khác.  Một thông điệp bao gồm:  Handle (xử lý) của đối tượng đích (đối tượng chủ)  Tên phương thức cần thực hiện  Các thông tin cần thiết khác (tham số)  Hệ thống yêu cầu đối tượng thực hiện phương thức như sau:  Gửi thông báo và tham số cho đối tượng  Kiểm tra tính hợp lệ của thông báo  Gọi thực hiện hàm tương ứng phương thức NIIT.vn
  • 20.
  • 21.
  • 22. 2.9 TÍNH ĐA HÌNH (POLYMORPHISM)  Là khả năng đưa một phương thức có cùng tên trong các lớp con  là có cùng chức năng nhưng các lớp khác nhau sẽ hành xử khác nhau  hỗ trợ thêm cho việc đóng gói  Thực hiện bởi:  Định nghĩa lại  Nạp chồng  Cơ chế dựa trên sự kết gán:  Kết gán sớm  Kết gán muộn NIIT.vn
  • 23. 3. CÁC BƯỚC THIẾT KẾ CHƯƠNG TRÌNH OOP  Các bước chính:  Xác định các dạng đối tượng (lớp)  Tìm dữ liệu dùng chung, chia xẻ  Xác định lớp cơ sở dựa vào dữ liệu dùng chung  Xây dựng lớp dẫn xuất từ lớp cơ sở NIIT.vn
  • 24. 4. ƯU ĐIỂM CHÍNH CỦA OOP  Loại bỏ các đoạn mã lặp lại  Tạo ra các chương trình an toàn, bảo mật  Dễ dàng mở rộng và nâng cấp  Rút ngắn thời gian xây dựng hệ thống  Tăng năng xuất và hiệu quả hơn  Chương trình được thiết kế theo đúng qui trình NIIT.vn
  • 25. 5. MỘT SỐ NGÔN NGỮ OOP  Ngôn ngữ hỗ trợ hướng đối tượng:  Object C, Pascal, C++, Delphi…  Ngôn ngữ hướng đối tượng:  SmallTalk, JAVA  Visual C++  VB.NET, C#... NIIT.vn
  • 26. 6. ỨNG DỤNG CỦA OOP  Dùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau:  Ví dụ: hệ điều hành Windows  Lĩnh vực chính:  Hệ thống thời gian thực  Cơ sở dữ liệu hướng đối tượng  Hệ siêu văn bản, đa phương tiện  Trí tuệ nhân tạo  Lập trình song song, mạng nơron … NIIT.vn
  • 27. BÀI TẬP 1. Tìm Min, Max của dãy n số nguyên, thực 2. Tính tổng S=1+1/2+…+1/n 3. Sắp xếp dãy n số nguyên, thực bằng các phương pháp: Selection, Insert, Bubble, Quick sort, Merge sort 4. Quản lý danh sách n sinh viên thông tin gồm: họ tên, năm sinh, giới tính, toán, lý, hóa, điểm trung bình. Viết các hàm nhập danh sách, in danh sách, sắp xếp theo họ tên, điểm trung bình NIIT.vn
  • 28. 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
  • 29. 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: maintn@inet.vn NIIT.vn