LẬP TRÌNH JAVA
Bài 4: Tổng quan về lập trình hướng đối tượng
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
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
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:
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:
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.
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).
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 :
objects + messages = Program
(đối tượng + thông điệp = Chương trình)
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
4.2- Giới thiệu về LT HĐT
Lịch sử của công nghệ hướng đối tượng:
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).
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
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).
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.
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).
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
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
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)
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 đó.
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):
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.
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.
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:
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".
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
từ 1 lớp khác
Java chỉ cho phép
đơn kế thừa
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
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:
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.
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.
4.3- Các khái niệm cơ bản
Đa hình (Polymophism)
Ví dụ về đa hình:
Bạn đang đọc truyện trên: truyentop.pro