Chuong 01 - Tong quan ve OOP-java

Màu nền
Font chữ
Font size
Chiều cao dòng

Bé m«n C«ng nghÖ phÇn mÒm KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

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

Chương 1. Tổng quan về lập trình hướng đối tượng (OOP)

Chương 1. Tổng quan về lập trình hướng đối tượng (LTHĐT)

1. Lịch sử phát triển của các NNLT

2. Giới thiệu về LTHĐT

3. Phân tích và thiết kế HĐT

4. Các khái niệm cơ bản trong LTHĐT

NguyễnThị Thu Trang [email protected]

LTHDT 1

Department of Software Engineering 2

Chương 1. Tổng quan về lập trình hướng đối tượng (LTHĐT)

1. Lịch sử phát triển của các NNLT

2. Giới thiệu về LTHĐT

3. Phân tích và thiết kế HĐT

4. Các khái niệm cơ bản trong LTHĐT

1. Lịch sử phát triển của các 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ì.

Department of Software Engineering 3

Department of Software Engineering 4

1

1. Lịch sử phát triển của các NNLT

1. Lịch sử phát triển của các NNLT

b. NNLT cấu trúc/thủ tục:

b. NNLT cấutrúc/thủ tục (tiếp):  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.

Department of Software Engineering 5

Department of Software Engineering 6

1. Lịch sử phát triển của các NNLT

1. Lịch sử phát triển của các NNLT

c. NNLT hướng đốitượ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 "đốitượng" (object).

c. NNLT hướng đốitượng (tiếp):  Mỗi đối tượng có thể coi như một "thành phần sống", tạo nên bởi dữ liệu và các hàm thao tác dữ liệuchứa ngay bên trong nó: Trạng thái: Dữ liệu của đối tượng Các hoạt động:  Các hàm thao tác dữ liệu  Thực hiện các thao tác nào đó. Các thao tác này thực hiện các chức năng của hệ thống.

Department of Software Engineering 7

Department of Software Engineering 8

2

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)

Chương 1. Tổng quan về lập trình hướng đối tượng (LTHĐT)

1. Lịch sử phát triển của các NNLT

2. Giới thiệu về LTHĐT

3. Phân tích và thiết kế HĐT

4. Các khái niệm cơ bản trong LTHĐT

Department of Software Engineering 9

Department of Software Engineering 10

2. Giới thiệu về LTHĐT

Lịch sử củacôngnghệ hướng đốitượng

Đối tượng là gì?

Đối tượng trong thế giới thực, ví dụ một chiếc ô tô 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).

Department of Software Engineering 11

Department ofent of Softftwwaar ree Engi Engi neeringg 12

3

Đối tượng là gì?

Đối tượng là gì?

Đối tượng diễn tả một thực thể, có thể là vật chất, khái niệmhoặcphầnmềm. Thực thể vật chất

Thực thể khái niệm

Thực thể phần mềm

Là một thựcthể đượ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).

Department of Software Engineering 13

Department of Software Engineering 14

Một đối tượng có trạng thái

Trạng thái củamột đốitượng là một trong các điềukiệnchứng tỏ đốitượng đótồn tại. Trạng thái củamột đốitượng thường thay đổi theo thờigian.

Một đối tượng có hành vi

Hành vi quyết định đốitượng đóhành động và đáp trả như thế nào đốivới bên ngoài. Hành vi nhìn thấy được củamột đối tượng được mô hình thành một tập các thông điệpnócóthể đáp trả (các thao tác mà đốitượng đóthực hiện).

Department of Software Engineering 15

Department of Software Engineering 16

4

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ủanócóthể giống với đối tượng khác.

Chương 1. Tổng quan về lập trình hướng đối tượng (LTHĐT)

1. Lịch sử phát triển của các NNLT

2. Giới thiệu về LTHĐT

3. Phân tích và thiết kế HĐT

4. Các khái niệm cơ bản trong LTHĐT

Department of Software Engineering 17

Department of Software Engineering 18

3. Phân tích và thiết kế hướng đối tượng

Phân tích và thiết kế hướng đối tượng (Object-oriented Analysis and Design - OOAD) là một trong các phương pháp hiệu quả nhất để phát triển phần mềm. Sử dụng ngôn ngữ mô hình hóa UML (Unified Modeling Language).

Chương 1. Tổng quan về lập trình hướng đối tượng (LTHĐT)

1. Lịch sử phát triển của các NNLT

2. Giới thiệu về LTHĐT

3. Phân tích và thiết kế HĐT

4. Các khái niệm cơ bản trong LTHĐT

Department of Software Engineering 19

Department of Software Engineering 20

5

4. Các khái niệm cơ bản trong LTHĐT

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.1. Trừu tượng hóa

Các đặc tính cần thiết của mộtthực thể phân biệtnó với các thựcthể khác cùng loại  Thành các lớp (class).

Department of Software Engineering 21

Department of Software Engineering 22

4.2. Đóng gói

Đóng gói (Encapsulation) hay 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 nhập và sử dụng những gì đã quy định cho họ. Một phần lớp được che dấu và không cho người sử dụng được quyền truy nhập.  Cho phép những người thiết kế các lớp có khả năng thay đổi hay định nghĩa lại lớp mà vẫn chắc chắn rằng không ảnh hưởng tới chương trình của những người sử dụng lớp này.

Ví dụ về tính đóng gói

Giáo sư Clark có khả năng dạy4 lớp trong kỳ học tới.

Department of Software Engineering 23

Department of Software Engineering 24

6

Tính đóng gói trong Java

4.3. Mô đun hóa

Java sử dụng các từ khóa để xác định khả năng truy nhập các thông tin dữ liệutừ bên ngoài lớp: public, private, và protected.  public  private  protected

Mô đun hóalàchiamột hệ thống phức tạp thành những phầncóthể quảnlý được. Mô đun hóagiúptacóthể hiểu được những hệ thống phức tạp.

Department of Software Engineering 25

Department of Software Engineering 26

Ví dụ về mô đun hóa

Ví dụ về việcchiahệ thống phức tạp thành các hệ thống nhỏ hơn:

4.4. Kế thừa

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úng ta chỉ cần thêm vào đó những gì chưa có, những gì chưa đủ. Định nghĩa phân cấpcủacác trừu tượng hóa mà các lớp con kế thừa từ mộthoặc nhiều lớpcha.  Đơnkế thừa (Single Inheritance)  Đakế thừa (Multiple Inheritance) Mốiquanhệ "Là", "Là một loại".

Department of Software Engineering 27

Department of Software Engineering 28

7

Ví dụ về đơn kế thừa

Một lớp kế thừatừ 1 lớp khác

Ví dụ về đa kế thừa

Một lớp có thể kế thừa từ nhiềulớp khác

Java chỉ cho phép đơn kế thừa

C++ cho phép đakế thừa

Department of Software Engineering 29

Department of Software Engineering 30

4.5. Tái sử dụng

Sử dụng lạicác lớp đã viết mã 3cách để sử dụng lạilớ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  Liên kết, kết tập hay hợp thành.  Kế thừa.

4.6. Đa hình

Mộtphương thứccócác cách thể hiện khác nhau trên nhiềuloại đối tượng khác nhau  Đa hình (Polymorphism). Tính đahìnhlàmộttrong những đặctính quan trọng nhấtcủahệ thống hướng đối tượng.

Department of Software Engineering 31

Department of Software Engineering 32

8

Ví dụ về đa hình

Department of Software Engineering 33

9

Bạn đang đọc truyện trên: Truyen2U.Pro