22
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Trình bày: Đinh Công Thuật

bai tap oop

Embed Size (px)

Citation preview

Page 1: bai tap oop

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

Trình bày:

Đinh Công Thuật

Page 2: bai tap oop

13/04/2023

Đinh Công Thuật

2

Nội dung

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

2. Một số tính chất

3. Đặc tính của lập trình hướng đối tượng

Page 3: bai tap oop

13/04/20233

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

1.1 Khái niệm về lập trình hướng đối tượngLập trình hướng Đối tượng (OOP) là một

phương pháp thiết kế và phát triển phần mềm

là kĩ thuật lập trình hỗ trợ công nghệ đối tượng. 

đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã cho người lập trình Đinh Công Thuật

Page 4: bai tap oop

13/04/2023

Đinh Công Thuật

4

1.2 Một số khái niệm trong lập trình hướng đối tượngĐối tượng thế giới

Là thực thể trong thế giới thực Ta có thể nhìn, sờ, cảm nhận đượcCó các trạng thái(state) và hành

động(behaviour)

Page 5: bai tap oop

13/04/2023

Đinh Công Thuật

5

Ví dụ:

Ô tô là 1 đối tượng thế giới thực với:Trạng thái:

o Màu đỏo 4 bánh

Hành động:o Chạyo Bay (trong tương lai)

Page 6: bai tap oop

13/04/2023

Đinh Công Thuật

6

1.2 Một số khái niệm trong lập trình hướng đối tượng

Đối tượng phần mềnDùng để biểu diễn các đối tượng thế giới

thực.Cũng có trạng thái và hành động

o Trạng thái: thuộc tính (attribute; property)o Hành động: phương thức (method)

Page 7: bai tap oop

13/04/2023

Đinh Công Thuật

7

Đối tượng

Đối tượng phần mền Đối tượng phần mền xe đạp

Đối tượng (object) là một thực thể phần mềm bao

bọc các thuộc tính và các phương thức liên quan.

Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc tính thể hiện. Một đối tượng cụ thể được gọi là một thể hiện.

Page 8: bai tap oop

13/04/2023

Đinh Công Thuật

8

1.2 Một số khái niệm trong lập trình hướng đối tượng Lớp:

Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng có các thuộc tính chung nhất

ví dụ: lớp Student được thết kế chung cho tất cả các đối sinh viên.

Lớp định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó

Một đối tượng là một thể hiện cụ thể của một lớp, mỗi thể hiện có thể có những thuộc tính thể hiện khác nhauVí dụ: mỗi đối tượng sinh viênlà 1 cụ thể hóa của lớp Student.

1 sinh viên có thể có điểm cao trong khi 1 sinh viên khác có điểm thấp.

Page 9: bai tap oop

13/04/2023

Đinh Công Thuật

9

1.2 Một số khái niệm trong lập trình hướng đối tượng

Thuộc tính (attribute): Một thuộc tính là một đặc tính được đặt tên của một lớp

mô tả khoảng giá trị mà các thể hiện của đặc tính đó có thể chứa.o Một lớp có thểkhông có thuộc tính nào hoặc có sốlượng thuộc tính

bất kỳ.

ví dụ:

lớp Student với thuộc

tính là: name, age, point,

student_ID.

Page 10: bai tap oop

13/04/2023

Đinh Công Thuật

10

1.2 Một số khái niệm trong lập trình hướng đối tượng Phương thức (method): Xác định cách một đối tượng đáp ứng lại thông điệp Phương thức xác định các hoạt động của lớp Bất kỳ phương thức nào cũng phải thuộc về một lớp nào

đó Có 2 phương thức đặc biệt là phương thức khởi tạo và

phương thức hủy đối tượng

sinh viên có phương thức study: public void study(){

point++;}

Page 11: bai tap oop

13/04/2023

Đinh Công Thuật

11

2. Một số tính chất

2.1 Tính trừu tượngLà tính chất khái quát của các đối tượng

trong chương trìnhTính chất này thường được gọi là sự khái

quát của dữ liệu. Tính trừu tượng này thường được xác

định trong khái niệm gọi là lớp trừu tượng hay lớp cơ sở trừu tượng.

Page 12: bai tap oop

13/04/2023

Đinh Công Thuật

12

Ví dụ về tính trừu tượng:

Trừu tượng hóa

Page 13: bai tap oop

13/04/2023

Đinh Công Thuật

13

2. Một số tính chất

2.2 Tính đóng gói (encapsulation) và che giấu thông tin (information hiding)Tính chất này không cho phép người sử dụng các đối

tượng thay đổi trạng thái nội tại của một đối tượng.Chỉ có các phương thức nội tại của đối tượng cho

phép thay đổi trạng thái của nó.Việc thay đổi từ bên ngoài tùy thuộc vào người

lập trình.Đây là tính chất đảm bảo sự toàn vẹn của đối

tượng.

Page 14: bai tap oop

13/04/2023

Đinh Công Thuật

14

Một đối tượng được đóng gói có thể được xem như một hộp đen – các công việc bên trong là ẩn so với client

Input Output

Đóng gói thuộc tính trong C#:

Don’t Know How it works

public String Student_ID{ get { return student_ID; } set { student_ID = value; }}

Page 15: bai tap oop

13/04/2023

Đinh Công Thuật

15

2. Một số tính chất

2.3 Tính kế thừa (inheritance): Cho phép một đối tượng có thể có sẵn các

đặc tính mà đối tượng khác đã có thông qua kế thừa.

Các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.

Page 16: bai tap oop

13/04/2023

Đinh Công Thuật

16

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

Page 17: bai tap oop

13/04/2023

Đinh Công Thuật

17

2. Một số tính chất

2.4 Tính đa hình (polymorphism): Tính đa hình cho phép các chức năng (method)

khác nhau được thực thi khác nhau trên các đối tượng khác nhau.

Ví dụ:Có 3 lớp Student, Teacher, Employee kế

thừa lớp Human, trong lớp Human có

phương thức talk(). Khi khởi tạo đối

tượng thuộc 3 lớp khác nhau thì những

đối tượng này gọi tới phương thức talk()

nằm ở lớp nàothì thực thi chức năng

Phương thức ở lớp đó.

Page 18: bai tap oop

13/04/2023

Đinh Công Thuật

18

Đa hình có 2 mức căn bản: Data Type (kiểu dữ liệu) và Method (phương thức).

Trong lập trình hướng đối tượng, Data Type được thể hiện ở Interface và Method thể hiện ở overloading (nạp chồng).

Page 19: bai tap oop

13/04/2023

Đinh Công Thuật

19

3. Đặc tính của lập trình hướng đối tượng

3.1 Ưu điểm Loại bỏ được những đoạn mã trùng lặp,dư thừa trong quá

trình mô tả đối tượng. Rút ngắn thời gian xây dựng hệ thống và tăng năng suất

lao động. Bảo vệ an toàn chương trình trước sự truy nhập tùy tiện

của các đối tượng khác. Xây dựng được mô hình phù hợp với thực tế hơn. Những hệ thống đối tượng dễ mở rộng, nâng cấp thành

những hệ thống lớn hơn.

Page 20: bai tap oop

13/04/2023

Đinh Công Thuật

20

Việc trao đổi thông tin giữa các đối tượng giúp cho việc mô tả giao diện với các hệ thống bên ngoài đơn giản hơn.

Có thể quản lý độ phức tạp của các sảm phẩm phần mền. Tùy thuộc vào dự án tin học mà ta có thể sử dụng các tính

chất khác nhau của lập trình hướng đối tượng.

Page 21: bai tap oop

13/04/2023

Đinh Công Thuật

21

3.2 Nhược điểm

Người lập trình phải nắm bắt nhiều khái niệm hơn so với hướng cấu trúc

Page 22: bai tap oop

Cảm ơn đã theo dõi và lắng nghe