Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (431.89 KB, 27 trang )
<span class='text_page_counter'>(1)</span>LẬP TRÌNH JAVA Bài 4: Tổng quan về lập trình hướng đối tượng.
<span class='text_page_counter'>(2)</span> Mục tiêu . Kết thúc bài học bạn có thể nắm được: . Giới thiệu về lịch sử phát triển của các ngôn ngữ lập trình. . Giới thiệu về lập trình hướng đối tượng. . Các khái niệm cơ bản trong Lập trình hướng đối tượng. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 2.
<span class='text_page_counter'>(3)</span> Nội dung . 4.1 Giới thiệu về lịch sử phát triển của các ngôn ngữ lập trình. . 4.2 Giới thiệu về lập trình hướng đối tượng. . 4.3 Các khái niệm cơ bản trong Lập trình hướng đối tượng 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 3.
<span class='text_page_counter'>(4)</span> 4.1- Giới thiệu về lịch sử NNLT . a. Hợp ngữ (Assembly language): . . . Là một ngôn ngữ lập trình tuần tự, gần với tập các lệnh mã máy của CPU. Khó nhớ, khó viết, nhất là với những bài toán phức tạp. Khó sửa lỗi, bảo trì.. b. NNLT cấu trúc/thủ tục:. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 4.
<span class='text_page_counter'>(5)</span> 4.1- Giới thiệu về lịch sử NNLT . b. NNLT cấu trúc/thủ tục: . Tư tưởng chính: . . . 13/06/21. Tìm ra cách thể hiện bài toán cần giải quyết bằng những cấu trúc lập trình có trong các ngôn ngữ tương ứng. Tập trung chủ yếu vào việc viết phần mềm dựa trên các hàm/thủ tục/chương trình con. Dữ liệu và các hàm xử lý dữ liệu được tách rời nhau. Các thủ tục không bắt buộc một cách thức chung truy nhập vào dữ liệu.. Bộ Môn CNPM - ĐHBK Hà Nội. 5.
<span class='text_page_counter'>(6)</span> 4.1- Giới thiệu về lịch sử NNLT . c. NNLT hướng đối tượng: . Giải quyết chung được số lượng lớn các bài toán Thể hiện các thành phần của bài toán là các “đối tượng” (object).. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 6.
<span class='text_page_counter'>(7)</span> 4.1- Giới thiệu về lịch sử NNLT . Lập trình cấu trúc vs. OOP? Lập trình cấu trúc: . . data structures + algorithms = Program (cấu trúc dữ liệu + giải thuật = Chương trình). OOP : . 13/06/21. objects + messages = Program (đối tượng + thông điệp = Chương trình). Bộ Môn CNPM - ĐHBK Hà Nội. 7.
<span class='text_page_counter'>(8)</span> Nội dung . 4.1 Giới thiệu về lịch sử phát triển của các ngôn ngữ lập trình. . 4.2 Giới thiệu về lập trình hướng đối tượng. . 4.3 Các khái niệm cơ bản trong Lập trình hướng đối tượng 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 8.
<span class='text_page_counter'>(9)</span> 4.2- Giới thiệu về LT HĐT . Lịch sử của công nghệ hướng đối tượng:. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 9.
<span class='text_page_counter'>(10)</span> 4.2- Giới thiệu về LT HĐT . Đối tượng là gì? . . Đối tượng trong thế giới thực, ví dụ một chiếc ô tô, một con người, một khoản tiền Liên quan đến chiếc ô tô: . . . Các thông tin về chiếc xe như: màu sắc, tốc độ, số km đã đi được,... Các hoạt động của chiếc xe như: tăng tốc khi nhấn ga, giảm tốc khi đạp phanh,.... Các đối tượng trong thế giới thực có thể được mô hình hóa trong các ngôn ngữ lập trình, gọi là đối tượng (object).. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 10.
<span class='text_page_counter'>(11)</span> 4.2- Giới thiệu về LT HĐT . Đối tượng diễn tả một thực thể, có thể là vật chất, khái niệm hoặc phần mềm. . Thực thể vật chất. . Thực thể khái niệm. . Thực thể phần mềm. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 11.
<span class='text_page_counter'>(12)</span> 4.2- Giới thiệu về LT HĐT . Đối tượng là gì? . . . Là một thực thể được đóng gói thành trạng thái (state) và hành vi (behavior). Trạng thái được biểu diễn bởi các thuộc tính (attributes) và các mối quan hệ (relationships). Hành vi được biểu diễn bởi các thao tác (operations), phương thức (methods).. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 12.
<span class='text_page_counter'>(13)</span> 4.2- Giới thiệu về LT HĐT . Một đối tượng có trạng thái . . Trạng thái của một đối tượng là một trong các điều kiện chứng tỏ đối tượng đó tồn tại. Trạng thái của một đối tượng thường thay đổi theo thời gian.. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 13.
<span class='text_page_counter'>(14)</span> 4.2- Giới thiệu về LT HĐT . Một đối tượng có hành vi . . Hành vi quyết định đối tượng đó hành động và đáp trả như thế nào đối với bên ngoài. Hành vi nhìn thấy được của một đối tượng được mô hình thành một tập các thông điệp nó có thể đáp trả (các thao tác mà đối tượng đó thực hiện).. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 14.
<span class='text_page_counter'>(15)</span> 4.2- Giới thiệu về LT HĐT . Một đối tượng có định danh duy nhất . Mỗi đối tượng đều có định danh duy nhất, dù trạng thái của nó có thể giống với đối tượng khác. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 15.
<span class='text_page_counter'>(16)</span> Nội dung . 4.1 Giới thiệu về lịch sử phát triển của các ngôn ngữ lập trình. . 4.2 Giới thiệu về lập trình hướng đối tượng. . 4.3 Các khái niệm cơ bản trong Lập trình hướng đối tượng 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 16.
<span class='text_page_counter'>(17)</span> 4.3- Các khái niệm cơ bản . Trừu tượng hóa (Abstraction) Đóng gói (Encapsulation) Mô đun hóa (Modularity) Tái sử dụng (Re-usability) Kế thừa (Inheritance) Đa hình (Polymophism). 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 17.
<span class='text_page_counter'>(18)</span> 4.3- Các khái niệm cơ bản . Trừu tượng hóa (Abstraction) Giảm lượng thông tin của các thực thể, chỉ giữ lại các thông tin liên quan cho một mục đích nào đó.. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 18.
<span class='text_page_counter'>(19)</span> 4.3- Các khái niệm cơ bản . Đóng gói (Encapsulation) Đóng gói (Encapsulation) là một dạng của che giấu dữ liệu (Data Hiding): . . . . 13/06/21. Cho phép quy định những người sử dụng chỉ được phép truy cập và sử dụng những gì đã quy định cho họ Một phần lớp được che giấu và không cho người sử dụng được quyền truy nhập. Cho phép thay đổi thiết kế bên trong của một lớp mà giao diện bên ngoài không bị thay đổi theo Không ảnh hưởng tới chương trình của những người sử dụng lớp này.. Bộ Môn CNPM - ĐHBK Hà Nội. 19.
<span class='text_page_counter'>(20)</span> 4.3- Các khái niệm cơ bản . Mô đun hóa (Modularity) Mô đun hóa là chia một hệ thống phức tạp thành những phần có thể quản lý được. Mô đun hóa giúp ta có thể hiểu được những hệ thống phức tạp.. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 20.
<span class='text_page_counter'>(21)</span> 4.3- Các khái niệm cơ bản . Mô đun hóa (Modularity) . Ví dụ về việc chia hệ thống phức tạp thành các hệ thống nhỏ hơn:. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 21.
<span class='text_page_counter'>(22)</span> 4.3- Các khái niệm cơ bản . Kế thừa (Inheritance) Khả năng cho phép chúng ta có thể xây dựng được các lớp mới dựa trên các lớp đã có sẵn, chỉ cần thêm vào đó những gì chưa có, những gì chưa đủ. Định nghĩa phân cấp của các trừu tượng hóa mà các lớp con kế thừa từ một hoặc nhiều lớp cha. Đơn kế thừa (Single Inheritance) Đa kế thừa (Multiple Inheritance) Mối quan hệ “Là”, “Là một loại”.. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 22.
<span class='text_page_counter'>(23)</span> 4.3- Các khái niệm cơ bản . Kế thừa (Inheritance) Ví dụ về đơn kế thừa Một lớp kế thừa Superclass (Parent) từ 1 lớp khác (Ancestor) Java chỉ cho phép đơn kế thừa. Account + balance + name + number + withdraw () + createStatement (). Generalization Relationship Checking. Savings + getInterest (). Subclasses (Child) (Descendants) 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 23.
<span class='text_page_counter'>(24)</span> 4.3- Các khái niệm cơ bản . Kế thừa (Inheritance) . . Ví dụ về đa kế thừa Một lớp có thể kế thừa từ nhiều lớp khác. C++ cho phép đa kế thừa. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 24.
<span class='text_page_counter'>(25)</span> 4.3- Các khái niệm cơ bản . Tái sử dụng (Re-usability) Sử dụng lại các lớp đã viết mã 3 cách để sử dụng lại lớp: . . . 13/06/21. Sử dụng trực tiếp các đối tượng của lớp này như là các biến cần thiết để giải quyết bài toán -> Dễ nhất. Sử dụng các biến - đối tượng thuộc một lớp để xây dựng nên các lớp mới (tức là đối tượng nằm bên trong lớp mới => Kết tập. Kế thừa.. Bộ Môn CNPM - ĐHBK Hà Nội. 25.
<span class='text_page_counter'>(26)</span> 4.3- Các khái niệm cơ bản . Đa hình (Polymophism) Một phương thức có các cách thể hiện khác nhau trên nhiều loại đối tượng khác nhau Đa hình (Polymorphism). Tính đa hình là một trong những đặc tính quan trọng nhất của hệ thống hướng đối tượng.. 13/06/21. Bộ Môn CNPM - ĐHBK Hà Nội. 26.
<span class='text_page_counter'>(27)</span> 4.3- Các khái niệm cơ bản . Đa hình (Polymophism) Ví dụ về đa hình:. Animal. + communicate (). Lion + communicate (). Without Polymorphism if animal = “Lion” then Lion communicate else if animal = “Tiger” then Tiger communicate end. 13/06/21. Tiger + communicate (). With Polymorphism Animal communicate. Bộ Môn CNPM - ĐHBK Hà Nội. 27.
<span class='text_page_counter'>(28)</span>