Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 44

TỔNG QUAN VỀ

LẬP TRÌNH
HƯỚNG ĐỐI
TƯỢNG
Người thực hiện : Phùng Thị Thu An
Nội dung bài giảng
KNOW USE

Giới thiệu Các nguyên lý


Các khái niệm chung và 4 nguyên lý cơ bản của OOP
thuật ngữ cơ bản và minh họa bằng Java
01
Giới thiệu
Kỹ thuật lập trình
• giúp chúng ta định hướng chính xác cách thức tổ
chức sử dụng ngôn ngữ lập trình.
• xây dựng chương trình một cách tối ưu nhất.
Ngôn ngữ lập trình
• Là ngôn ngữ được chuẩn hóa
• Cả con người và máy tính có thể đọc và hiểu được
• Sử dụng chương trình dịch tương ứng để giao tiếp với máy tính

Chương trình dịch


Ngôn ngữ lập trình Ngôn ngữ máy
(Compiler)
11010101011010
1010101000101
01010001010101
11010101011
Sequential Programming
• là một trong những kỹ thuật lập trình.

• tư duy theo lối tuần tự, đơn giản và đơn luồng

 Ưu điểm: đơn giản, dễ hiểu.


 Nhược điểm: khó bảo trì và cập nhật.
POP Lập trình hướng cấu trúc (lập trình hướng thủ tục)

 Nhược điểm:
• Xây dựng chương trình dựa trên các hàm / thủ tục / Khi thay đổi dữ
liệu thì giải
chương trình con thuật chương
trình cũng phải
• Dữ liệu và xử lý (hàm) tách rời nhau thay đổi.
• Các hàm có thể tuân theo một cách thức chung truy cập
vào dữ liệu.
 Ưu điểm:
• NNLT: Pascal, C, C ++,… • Chương trình dễ hiểu, dễ theo dõi.
• Tư duy giải thuật rõ ràng.
OOP là gì ? Lập trình hướng đối tượng

• là một trong những kỹ thuật lập trình.


• cho phép lập trình viên tạo ra các đối tượng trong code
trừu tượng hóa các đối tượng.
• Dữ liệu được tổ chức thành các Lớp đối tượng.
• NNLT: Java, Python, C++, …
Object
Thuộc tính Phương thức

Tên Ngủ
Con mèo Màu sắc Ăn
Giống mèo… Bắt chuột…

Hãng xe Tăng tốc


Ô tô Năm sản xuất Giảm tốc
Giá tiền… Phanh…

Mã sinh viên Đi học


Sinh viên Giới tính Ghi bài
Quê quán… Đi thi…
Object
• là một thực thể phần mềm bao bọc các
thuộc tính (attributes) và các phương thức
(methods) liên quan.
Ví dụ: Quản lý tài khoản ngân hàng
Thuộc tính: STK: 19000241
Số dư: 300.000
Yêu cầu: Rút tiền
Hành động: Chuyển tiền
Rút tiền
Kiểm tra số dư

Bank Account Object User Object


Thuộc tính: ID: 19000241
Balance: 300000 withdraw()

Phương thức: deposit()


withdraw()
checkBalance()
Class instance

• Thuộc tính:
Khi nhiều đối tượng có những đặc tính như nhau sẽ ID: 19000241
Balance: 300000
được gom lại thành một lớp đối tượng (class) và
Phương thức: deposit()
cũng sẽ có 2 thành phần là thuộc tính và phương withdraw()
checkBalance()
thức.
• cũng có thể được dùng để định nghĩa một kiểu dữ
Thuộc tính: ID: 19000258
liệu mới. Balance: 700000
Class BankAccount
Phương thức:
Thuộc tính: ID, Balance deposit()
withdraw()
checkBalance()
Phương thức: deposit(),
withdraw(),checkBalance()
02
Các nguyên lý
Các nguyên lý OOP
!
01 Encapsulation 02 Inheritance
Tính đóng gói Tính kế thừa

04 Polymorphism 03 Abstraction
Tính đa hình Tính trừu tượng
1. Encapsulation
• Che giấu, ẩn đi chi tiết thực hiện bên
trong. 123456

• Cung cấp cho thế giới bên ngoài một


giao diện.
• Người dùng không phụ thuộc vào việc
sửa đổi sự thực thi bên trong.
1. Encapsulation

• Quy tắc trong tính bao đóng:


123456
phải luôn khai báo các trạng thái bên
trong của đối tượng là private và chỉ
cho truy cập qua các public/protected
method.
1. Encapsulation
Các Access Modifier

• Ai cũng có thể truy cập


public
• Thường được dùng cho phương thức
• Có thể truy cập bên trong package và bên ngoài
package nhưng chỉ thông qua tính kế thừa.
protected
• Dùng cho các thuộc tính hoặc phương thức có
điểm chung.
• Chỉ có thể được truy cập trong chính lớp được
private khai báo đó.
• Nên sử dụng để khai báo thuộc tính
[None]
• Chỉ có thể truy cập bên trong package.
default
2. Inheritance
• Xây dựng một lớp con mới dựa trên các định
nghĩa của lớp cha đã có gồm: thuộc tính và 123456

phương thức.
• Các lớp con không phải định nghĩa lại, ngoài ra
có thể mở rộng các thành phần kế thừa và bổ
sung thêm các thành phần mới.

Tất cả các lớp đối tượng tạo ra


! đều là lớp con của lớp Object.
3. Abstraction
• Là quá trình loại bỏ đi các thông tin cụ thể và
giữ lại những thông tin chung.
123456
• Tập trung vào các đặc điểm cơ bản của thực
thể, các đặc điểm phân biệt nó với các loại thực
thể khác.
• Phụ thuộc vào góc nhìn: quan trọng trong ngữ
cảnh này nhưng lại không có ý nghĩa nhiều
trong ngữ cảnh khác.
4. Polymorphism
• Cho phép các phương thức (method) khác
nhau được thực thi khác nhau trên các đối 123456

tượng khác nhau.


• Sử dụng các phương thức ghi đè
(Overriding method)
4. Polymorphism
Phương thức ghi đè (Overriding)

• Được sử dụng trong trường hợp lớp con kế thừa


123456
từ lớp cha và muốn định nghĩa lại một phương
thức đã có mặt ở lớp cha.
• Phương thức ở lớp cha có thể là abstract hoặc
không.
• Ví dụ: toString(), …
UML
• Ngôn ngữ mô hình
hóa thống nhất
(Unified Modeling
Language)
• Đây là công cụ để
dễ dàng lập trình
hướng đối tượng
Nguồn tài liệu: https://topdev.vn/blog/oop-la-gi/#
cac-uu-diem-cua-lap-trinh-huong-doi-t
uong

https://
quantrimang.com/lap-trinh-huong-doi-
tuong-trong-python-160230

https://users.soict.hust.edu.vn/trungtt/
uploads/slides/OOP_Bai01(vi).
pdf
Thanks!
Do you have any questions?

CREDITS: This presentation template was created by Slidesgo, including


icons by Flaticon and infographics & images by Freepik
Resources
Here’s an assortment of alternative resources whose style fits the one of this template

Vectors:
● Flat style science lab
● Scientists in lab vaccine concept
● Science lab objects pack
● Researcher holding dna molecules
● Flat design science lab
● Modern cctv sign collection with flat design

Photos:
● Foreground of businessman with loupe
● Copy-space doctor equipment
Instructions for use
In order to use this template, you must credit Slidesgo by keeping the Thanks slide.

You are allowed to:


- Modify this template.
- Use it for both personal and commercial projects.

You are not allowed to:


- Sublicense, sell or rent any of Slidesgo Content (or a modified version of Slidesgo Content).
- Distribute Slidesgo Content unless it has been expressly authorized by Slidesgo.
- Include Slidesgo Content in an online or offline database or file.
- Offer Slidesgo templates (or modified versions of Slidesgo templates) for download.
- Acquire the copyright of Slidesgo Content.

For more information about editing slides, please read our FAQs or visit Slidesgo School:
https://slidesgo.com/faqs and https://slidesgo.com/slidesgo-school
Instructions for use (premium users)
As a Premium user, you can use this template without attributing Slidesgo or keeping the "Thanks" slide.

You are allowed to:


● Modify this template.
● Use it for both personal and commercial purposes.
● Hide or delete the “Thanks” slide and the mention to Slidesgo in the credits.
● Share this template in an editable format with people who are not part of your team.

You are not allowed to:


● Sublicense, sell or rent this Slidesgo Template (or a modified version of this Slidesgo Template).
● Distribute this Slidesgo Template (or a modified version of this Slidesgo Template) or include it in a database or in
any other product or service that offers downloadable images, icons or presentations that may be subject to
distribution or resale.
● Use any of the elements that are part of this Slidesgo Template in an isolated and separated way from this
Template.
● Register any of the elements that are part of this template as a trademark or logo, or register it as a work in an
intellectual property registry or similar.

For more information about editing slides, please read our FAQs or visit Slidesgo School:
https://slidesgo.com/faqs and https://slidesgo.com/slidesgo-school
Fonts & colors used

This presentation has been made using the following fonts:

Aldrich
(https://fonts.google.com/specimen/Aldrich)

Commissioner
(https://fonts.google.com/specimen/Commissioner)

#192157 #678ab8 #45648d #e2e9fb

#5cc0f1 #e57a32
Storyset

Create your Story with our illustrated concepts. Choose the style you like the most, edit its colors, pick
the background and layers you want to show and bring them to life with the animator panel! It will boost
your presentation. Check out How it works.

Pana Amico Bro Rafiki Cuate


Use our editable graphic resources...

You can easily resize these resources without losing quality. To change the color, just ungroup the resource
and click on the object you want to change. Then, click on the paint bucket and select the color you want.
Group the resource again when you’re done. You can also look for more infographics on Slidesgo.
JANUARY FEBRUARY MARCH APRIL MAY JUNE

PHASE 1

Task 1

Task 2

PHASE 2

Task 1

Task 2

JANUARY FEBRUARY MARCH APRIL

PHASE
1

Task 1

Task 2
...and our sets of editable icons

You can resize these icons without losing quality.


You can change the stroke and fill color; just select the icon and click on the paint bucket/pen.
In Google Slides, you can also use Flaticon’s extension, allowing you to customize and add even more icons.
Educational Icons Medical Icons
Business Icons Teamwork Icons
Help & Support Icons Avatar Icons
Creative Process Icons Performing Arts Icons
Nature Icons
SEO & Marketing Icons

You might also like