SlideShare a Scribd company logo
1 of 34
Download to read offline
Bài 2:
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP)
Tìm hiểu khái niệm cấu trúc dữ liệu
Dữ liệu, Cấu trúc dữ liệu
Các kiểu cấu trúc dữ liệu
Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải)
Khái niệm về giải thuật
Biểu diễn giải thuật
Độ phức tạp của giải thuật
Mối liên hệ giữa cấu trúc dữ liệu và giải thuật
Nhắc lại bài cũ
Slide 2 - Lập trình hướng đối tượng 2
Nhắc lại khái niệm lập trình hướng thủ tục (Procedural
Programming)
Tìm hiểu các khái niệm và ý nghĩa Lập trình hướng đối
tượng (OOP)
Lập trình hướng đối tượng trong VB.Net
Mục tiêu bài học hôm nay
Slide 2 - Lập trình hướng đối tượng 3
Có thể so sánh kiểu dữ liệu cơ sở so với kiểu dữ liệu có cấu
trúc giống như lập trình hướng thủ tục với lập trình hướng đối
tượng
Lập trình hướng thủ tục thường thao tác với dữ liệu phi cấu trúc
(biến kiểu dữ liệu cơ sở), trong khi đó Lập trình hướng đối tượng
thường thao tác với dữ liệu có cấu trúc đối tượng.
Cấu trúc dữ liệu đối tượng là loại cấu trúc được sử dụng phổ
biến nhất trong lập trình hiện nay.
Tiếp cận vấn đề
Slide 2 - Lập trình hướng đối tượng 4
Bài toán quản lý giao dịch của Khách hàng với Ngân Hàng:
Khách hàng có các giao dịch với ngân hàng:
Nạp tiền vào tài khoản
Rút tiền từ tài khoản
Chuyển khoản giữa các tài khoản
Bài toán ví dụ
Slide 2 - Lập trình hướng đối tượng 5
Quan tâm đến chức năng (thủ
tục) cần thực hiện.
Chương trình lớn được chia thành
các chức năng (thủ tục) nhỏ hơn
hoạt động độc lập với nhau.
Phần lớn các chức năng sử dụng
dữ liệu chung.
Lập trình hướng thủ tục
Slide 2 - Lập trình hướng đối tượng 6
Chuyển
khoản
Quản lý Ngân hàng
Các chức năng: Nạp tiền, Rút
tiền, Chuyển khoản
Các vấn đề gặp phải của lập trình hướng thủ tục với các
hệ thống phức tạp:
Vấn đề quản lí quá nhiều chức năng
Vấn đề về quản lí dữ liệu phức tạp
Vấn đề mở rộng chức năng và sử dụng lại module đã viết
-> Phương pháp lập trình hướng đối tượng
Lập trình hướng thủ tục
Slide 2 - Lập trình hướng đối tượng 7
Chương trình được chia thành các
Đối tượng (Object).
Mỗi đối tượng chịu trách nhiệm
quản lí riêng dữ liệu và các chức
năng của nó.
Các đối tượng tác động và trao
đổi thông tin với nhau qua các
phương thức (chức năng).
Lập trình hướng đối tượng
Slide 2 - Lập trình hướng đối tượng 8
Quản lý Ngân hàng
Các đối tượng: Khách hàng,
Tiền, Tài khoản
Đối tượng (Object)
Lớp (Class)
Thuộc tính (field, attribute)
Phương thức (Method)
Các khái niệm trong lập trình OOP
Slide 2 - Lập trình hướng đối tượng 9
Biểu diễn 1 đối tượng trong thế giới thực
Mỗi đối tượng được đặc trưng bởi các thuộc tính và các
hành vi riêng của nó
Ví dụ: Đối tượng Khách hàng
Đối tượng (Object)
Slide 2 - Lập trình hướng đối tượng 10
Thuộc tính Hành vi
Khách hàng
 Họ tên
 Địa chỉ
 Số CMND
 Số tài
khoản
 Rút tiền từ tài
khoản
 Nạp tiền vào
tài khoản
 Yêu cầu
chuyển khoản
Đối tượng trong thế giới thực và Đối tượng trong lập
trình:
Đối tượng (Object)
Slide 2 - Lập trình hướng đối tượng 11
Object trong thế giới thực Object trong lập trình
Các thuộc tính Các trường (field)
Các hành vi Các phương thức (method)
Khách hàng
- Họ tên
- Địa chỉ
- Số CMND
- Số tài khoản
+ Rút tiền
+ Nạp tiền
+ Chuyển khoản
Tên đối tượng
Các thuộc tính
Các hành vi
Trong OOP, cần ánh xạ các Đối tượng trong thực tế
thành các Đối tượng trong lập trình
Đối tượng (Object)
Slide 2 - Lập trình hướng đối tượng 12
Class là một khuôn mẫu (Prototype) đị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ùng loại.
Mỗi đối tượng là một thể hiện của một Lớp (hay nói nôm na, đối
tượng là sản phẩm được tạo ra từ khuôn là lớp).
Ví dụ: Lớp các đối tượng Khách hàng
Lớp (Class)
Slide 2 - Lập trình hướng đối tượng 13
Đối tượng
Lớp
Khách
Hàng
Thuộc tính (Property/Attribute) là dữ liệu trình bày đặc
trưng các đặc điểm về một Đối tượng.
Phương thức (Method) tác động lên dữ liệu để thực hiện
hành vi của Đối tượng.
Thuộc tính và phương thức
Slide 2 - Lập trình hướng đối tượng 14
Định nghĩa của lớp Khách hàng
Public Class KhachHang
'khai báo các thuộc tính
Private mHoten As String
Private mDiachi As String
Private mCMND As String
Private mSoTK As String
'khai báo các phương thức
Public Sub RutTien(ByVal sotien As Integer)
'mã cài đặt phương thức ở đây
End Sub
Public Sub NapTien(ByVal sotien As Integer)
'mã cài đặt phương thức ở đây
End Sub
Public Sub ChuyenKhoan(ByVal nguoinhan As KhachHang, ByVal sotien As
Integer)
'mã cài đặt phương thức ở đây
End Sub
End Class
Ví dụ OOP trong VB.NET
Slide 2 - Lập trình hướng đối tượng 15
Cú pháp khai báo Class:
[Điều khiển truy xuất] [Từ khóa] Class Tên lớp [Implements
TenGiaoDien]
‘Khai báo các thuộc tính và phương thức
‘ Thực hiện các phương thức…
End Class
Khai báo Lớp
Slide 2 - Lập trình hướng đối tượng 16
Điều khiển truy xuất: định nghĩa khả năng truy cập của class, sử dụng
một trong các từ khóa : Public, Private, Protected, Friend,Protected Friend
Từ khóa: chỉ rõ các lớp có được thừa kế hay không, từ khóa Inherits,
NotInheritable hoặc MustInherit.
Class: đánh dấu bắt đầu một Class
Tên lớp tên của một Class
Implements: chỉ rõ class thực thi trên giao diện nào
Tên Giao Diện: miêu tả tên giao diện.Một class có thể thực thi trên một
hoặc nhiều giao diện.
End Class: đánh dấu kết thúc khai báo của một class
Khai báo Lớp
Slide 2 - Lập trình hướng đối tượng 17
Bảng các điều khiển truy xuất
Slide 2 - Lập trình hướng đối tượng 18
Access
Modifier
Dùng trong Mô tả
Public module, class,
structure
Được truy cập từ cùng project, từ
project khác hoặc từ thành phần khác
Private module, class,
structure
Chỉ được truy cập trong cùng module,
class , structure
Protected Classes, class member Được truy cập trong cùng class , hoặc
class được kế thừa
Friend module, class,
structure
Truy cập được trong cùng project
Protected
Friend
Classes, class member Truy cập được trong cùng project
Và từ các class được kế thừa
Ví dụ khai báo lớp tên là Person
Ví dụ khai báo một Class
Slide 2 - Lập trình hướng đối tượng 19
Public Class Person
‘Các thành phần khác của class được khai
báo ở đây
End Class
Các thành phần chủ yếu của một Class bao gồm:
Biến thành viên (Field)
Thuộc tính (Property)
Phương thức khởi tạo (Constructor)
Phương thức (Method)
Các thành phần của một Class
Slide 2 - Lập trình hướng đối tượng 20
Biến thành viên (field) là một đặc tính bên trong của lớp.
Ví dụ khai báo biến thành viên như sau:
Biến thành viên
Slide 2 - Lập trình hướng đối tượng 21
Public Class Person
' Khai báo 2 biến thành viên
Private mName As String
Private mAge As Integer
End Class
Thuộc tính (property): cho phép định nghĩa chi tiết thao
tác truy cập các biến thành viên
Ví dụ khai báo thuộc tính như sau:
Thuộc tính
Slide 2 - Lập trình hướng đối tượng 22
‘ Thuộc tính cho phép đọc và gán
Public Property Name() As String
Get
Return mName
End Get
Set(ByVal Value As String)
mName = Value
End Set
End Property
Được dùng để khởi tạo đối tượng
Trong VB.Net, thủ tục New chính là phương thức khởi tạo
Ví dụ:
Phương thức khởi tạo (Constructor)
Slide 2 - Lập trình hướng đối tượng 23
Public Class Person
' Khai báo 2 biến thành viên
Private mName As String
Private mAge As Integer
' Thủ tục khởi tạo
Public Sub New(ByVal name As String, ByVal age As
Integer)
Me.mName = name
Me.mAge = age
End Sub
End Class
Có hai kiểu phương thức:
Không trả về giá trị
Trả về giá trị
Ví dụ một phương thức không trả về giá trị
Ví dụ một phương thức trả về giá trị
Phương thức (Method)
Slide 2 - Lập trình hướng đối tượng 24
Public Function Age() As Integer
Return mAge
End Function
Public Sub Reset()
mName = “”
mAge = 0
End Function
Khi có định nghĩa Lớp, có thể tạo các Đối tượng từ Lớp
(thông qua phương thức khởi tạo)
Tạo Đối tượng
Slide 2 - Lập trình hướng đối tượng 25
‘Định nghĩa đối tượng 1
Dim nguyen_nam_anh As New Person(“Nguyễn Nam Anh”, 18)
‘Định nghĩa đối tượng 2
Dim obj2 As New Person(“Lương Gia Thanh”, 20)
Sau khi tạo đối tượng, có thể thực hiện các hành động
mà đối tượng cung cấp
Thao tác với Đối tượng
Slide 2 - Lập trình hướng đối tượng 26
‘Định nghĩa đối tượng 1
Dim nguyen_nam_anh As New Person(“Nguyễn Nam Anh”, 18)
‘Định nghĩa đối tượng 2
Dim obj2 As New Person(“Lương Gia Thanh”, 20)
‘Gọi phương thức
Console.Write(obj2.Age());
Trong tình huống cần mở rộng chức năng của một Lớp
(hay nói cách khác là thêm hành vi cho đối tượng), có
một số lựa chọn sau:
Nếu có mã nguồn Lớp và muốn thay đổi trực tiếp trên lớp gốc
-> thay đổi trực tiếp vào mã nguồn lớp gốc
Nếu không muốn thay đổi Lớp gốc (hoặc không có mã nguồn),
có thể sử dụng hai cách:
1. Tạo lớp Kế thừa (Inheritance)
2. Tạo lớp Tụ hợp (Composition)
Mở rộng Lớp
Slide 2 - Lập trình hướng đối tượng 27
Kế thừa là một khả năng quan trọng của OOP
Một Lớp con (sub-class) có thể được định nghĩa bằng
cách thừa kế toàn bộ các đặc tính và hành vi của một
lớp cha (super-class).
Ví dụ trên, Apple cũng là một dạng trái cây (fruit). Do đó
để tạo ra lớp Apple, thay vì định nghĩa lại từ đầu, có thể
kế thừa từ lớp Fruit và bổ sung thêm các đặc tính và
hành vi của quả táo.
Mở rộng Lớp bằng Kế thừa
Slide 2 - Lập trình hướng đối tượng 28
Ví dụ mã định nghĩa lớp Apple kế thừa từ lớp Fruit
Ví dụ Kế thừa
Slide 2 - Lập trình hướng đối tượng 29
Public Class Fruit
‘Cài đặt chi tiết cho lớp Fruit
End Class
Public Class Apple Inherits Fruit
‘Cài đặt thêm các đặc tính và phương
thức riêng của Apple
End Class
Trong thực tế, tụ hợp được sử dụng nhiều hơn kế thừa
bởi tính linh hoạt của nó.
Lớp mới được tạo ra bằng cách dùng lớp đã có sẵn như
là một phần của mình, đồng thời bổ sung thêm các đặc
tính và phương thức riêng.
Ví dụ trên, Apple được tạo ra bằng cách dùng các thuộc
tính và phương thức của lớp Fruit (thông qua một đối
tượng fruit), đồng thời bổ sung thêm các thành phần
của mình.
Mở rộng Lớp bằng Tụ hợp
Slide 2 - Lập trình hướng đối tượng 30
Ví dụ mã định nghĩa lớp Apple kế thừa từ lớp Fruit
Ví dụ Tụ hợp
Slide 2 - Lập trình hướng đối tượng 31
Public Class Fruit
‘Cài đặt chi tiết cho lớp Fruit
End Class
Public Class Apple
Private fruit As Fruit
‘Cài đặt thêm các đặc tính và phương
thức riêng của Apple
End Class
Hiểu rõ về các khái niệm cơ bản của OOP: lớp, đối
tượng, thuộc tính, phương thức, quyền truy cập, phương
thức khởi tạo, kế thừa, tụ hợp,… sẽ giúp việc tìm hiểu,
cài đặt mới hoặc sử dụng các cấu trúc dữ liệu sẵn có (ví
dụ trong VB.NET) thuận lợi hơn rất nhiều.
OOP và Cấu trúc dữ liệu+giải thuật
Slide 2 - Lập trình hướng đối tượng 32
Lập trình OOP xử lý với dữ liệu có cấu trúc dạng đối
tượng
Các khái niệm quan trọng trong lập trình OOP:
Đối tượng (Object)
Lớp (Class)
Phương thức
Thuộc tính
Đối tượng được tạo ra thông qua phương thức khởi tạo
(constructor)
Tổng kết
Slide 2 - Lập trình hướng đối tượng 33
Lớp (Class) là khuôn, Đối tượng (Object) là sản phẩm
được tạo ra từ khuôn đó -> các đối tượng được tạo ra từ
cùng một khuôn class sẽ giống nhau về đặc tính và hành
vi
Kế thừa (Inheritance) là khả năng định nghĩa lớp con mở
rộng từ một lớp cha
Tụ hợp (Composition) là khả năng tập hợp nhiều lớp
khác và các thành phần bổ sung để tạo thành Lớp mới
Tổng kết
Slide 2 - Lập trình hướng đối tượng 34

More Related Content

What's hot

Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnThe Nguyen Manh
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Thuyet Nguyen
 
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTIT
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTITBài tập lớn Phát triển phần mềm hướng dịch vụ PTIT
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTITPopping Khiem - Funky Dance Crew PTIT
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 
Báo cáo tốt nghiệp
Báo cáo tốt nghiệpBáo cáo tốt nghiệp
Báo cáo tốt nghiệpMy Đá
 
Chuong 1. Lập trình hướng đối tượng trong java
Chuong 1. Lập trình hướng đối tượng trong javaChuong 1. Lập trình hướng đối tượng trong java
Chuong 1. Lập trình hướng đối tượng trong javathienlucpm2
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsaBảo Điệp
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Kuli An
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsLinh Hoang
 
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPT
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPTBài 2 Cài đặt Windows Server 2008 - Giáo trình FPT
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPTMasterCode.vn
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTMasterCode.vn
 
Báo cáo dự án quản lí thư viện
Báo cáo dự án quản lí thư việnBáo cáo dự án quản lí thư viện
Báo cáo dự án quản lí thư việnQuân Không Quần
 
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNHBÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNHHoà Đoàn
 
Hệ điều hành (chương 3)
Hệ điều hành (chương 3)Hệ điều hành (chương 3)
Hệ điều hành (chương 3)realpotter
 

What's hot (20)

Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
 
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTIT
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTITBài tập lớn Phát triển phần mềm hướng dịch vụ PTIT
Bài tập lớn Phát triển phần mềm hướng dịch vụ PTIT
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
BTL Lập trình C#
BTL Lập trình C#BTL Lập trình C#
BTL Lập trình C#
 
Báo cáo tốt nghiệp
Báo cáo tốt nghiệpBáo cáo tốt nghiệp
Báo cáo tốt nghiệp
 
Chuong 1. Lập trình hướng đối tượng trong java
Chuong 1. Lập trình hướng đối tượng trong javaChuong 1. Lập trình hướng đối tượng trong java
Chuong 1. Lập trình hướng đối tượng trong java
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#Chuan viet code va thiet ke giao dien trong C#
Chuan viet code va thiet ke giao dien trong C#
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Bai giang photoshop
Bai giang photoshopBai giang photoshop
Bai giang photoshop
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
 
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPT
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPTBài 2 Cài đặt Windows Server 2008 - Giáo trình FPT
Bài 2 Cài đặt Windows Server 2008 - Giáo trình FPT
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Báo cáo dự án quản lí thư viện
Báo cáo dự án quản lí thư việnBáo cáo dự án quản lí thư viện
Báo cáo dự án quản lí thư viện
 
Cơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng caoCơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng cao
 
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNHBÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
BÁO CÁO CÔNG NGHỆ PHẦN MỀM 8 điểm-QUẢN LÝ CỬA HÀNG BÁN MÁY ẢNH
 
Hệ điều hành (chương 3)
Hệ điều hành (chương 3)Hệ điều hành (chương 3)
Hệ điều hành (chương 3)
 
Chuong 3. cnpm
Chuong 3. cnpmChuong 3. cnpm
Chuong 3. cnpm
 

Viewers also liked

Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Trần Thiên Đại
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGTrường Phạm
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTMasterCode.vn
 
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTBài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTMasterCode.vn
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTMasterCode.vn
 
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTBài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTMasterCode.vn
 
BÀI 1: Làm quen với lập trình - Giáo trình FPT
BÀI 1: Làm quen với lập trình - Giáo trình FPTBÀI 1: Làm quen với lập trình - Giáo trình FPT
BÀI 1: Làm quen với lập trình - Giáo trình FPTMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Lập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vnLập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vntailieumienphi
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...Long Kingnam
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 
18 cách kiếm tiền online uy tín nhất
18 cách kiếm tiền online uy tín nhất18 cách kiếm tiền online uy tín nhất
18 cách kiếm tiền online uy tín nhấtkiemtienonline2030
 
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTBÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTMasterCode.vn
 
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢNTÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢNTrần Nguyên
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 

Viewers also liked (20)

Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
 
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPTBài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
Bài 3: COLLECTION TRONG VB.NET - Giáo trình FPT
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
 
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPTBài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
Bài 4: ARRAY VÀ ARRAYLIST - Giáo trình FPT
 
BÀI 1: Làm quen với lập trình - Giáo trình FPT
BÀI 1: Làm quen với lập trình - Giáo trình FPTBÀI 1: Làm quen với lập trình - Giáo trình FPT
BÀI 1: Làm quen với lập trình - Giáo trình FPT
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Lập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vnLập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vn
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 
18 cách kiếm tiền online uy tín nhất
18 cách kiếm tiền online uy tín nhất18 cách kiếm tiền online uy tín nhất
18 cách kiếm tiền online uy tín nhất
 
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTBÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
 
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
Bài 4 - Classes, objects và namespaces - Nền tảng lập trình ứng dụng với C#
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
 
Oop 0
Oop 0Oop 0
Oop 0
 
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢNTÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 

Similar to Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT

OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfssuserd01a5c
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectCodeGym Đà Nẵng
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPix Nhox
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượngHưởng Nguyễn
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Nhat Linh Luong
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbDũng Đinh
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfHiNht6
 

Similar to Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT (20)

OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdf
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & Object
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
Chapter1
Chapter1Chapter1
Chapter1
 
Lecture02(2)
Lecture02(2)Lecture02(2)
Lecture02(2)
 
Lecture02(1)
Lecture02(1)Lecture02(1)
Lecture02(1)
 
Lecture02
Lecture02Lecture02
Lecture02
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Bai11 ooad bieu_dolop
Bai11 ooad bieu_dolopBai11 ooad bieu_dolop
Bai11 ooad bieu_dolop
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
bai tap oop
bai tap oopbai tap oop
bai tap oop
 
Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010Tai lieu huong_dan_tu_hoc_visual_studio2010
Tai lieu huong_dan_tu_hoc_visual_studio2010
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Oop 3
Oop 3Oop 3
Oop 3
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdf
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 

More from MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT

  • 1. Bài 2: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP)
  • 2. Tìm hiểu khái niệm cấu trúc dữ liệu Dữ liệu, Cấu trúc dữ liệu Các kiểu cấu trúc dữ liệu Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải) Khái niệm về giải thuật Biểu diễn giải thuật Độ phức tạp của giải thuật Mối liên hệ giữa cấu trúc dữ liệu và giải thuật Nhắc lại bài cũ Slide 2 - Lập trình hướng đối tượng 2
  • 3. Nhắc lại khái niệm lập trình hướng thủ tục (Procedural Programming) Tìm hiểu các khái niệm và ý nghĩa Lập trình hướng đối tượng (OOP) Lập trình hướng đối tượng trong VB.Net Mục tiêu bài học hôm nay Slide 2 - Lập trình hướng đối tượng 3
  • 4. Có thể so sánh kiểu dữ liệu cơ sở so với kiểu dữ liệu có cấu trúc giống như lập trình hướng thủ tục với lập trình hướng đối tượng Lập trình hướng thủ tục thường thao tác với dữ liệu phi cấu trúc (biến kiểu dữ liệu cơ sở), trong khi đó Lập trình hướng đối tượng thường thao tác với dữ liệu có cấu trúc đối tượng. Cấu trúc dữ liệu đối tượng là loại cấu trúc được sử dụng phổ biến nhất trong lập trình hiện nay. Tiếp cận vấn đề Slide 2 - Lập trình hướng đối tượng 4
  • 5. Bài toán quản lý giao dịch của Khách hàng với Ngân Hàng: Khách hàng có các giao dịch với ngân hàng: Nạp tiền vào tài khoản Rút tiền từ tài khoản Chuyển khoản giữa các tài khoản Bài toán ví dụ Slide 2 - Lập trình hướng đối tượng 5
  • 6. Quan tâm đến chức năng (thủ tục) cần thực hiện. Chương trình lớn được chia thành các chức năng (thủ tục) nhỏ hơn hoạt động độc lập với nhau. Phần lớn các chức năng sử dụng dữ liệu chung. Lập trình hướng thủ tục Slide 2 - Lập trình hướng đối tượng 6 Chuyển khoản Quản lý Ngân hàng Các chức năng: Nạp tiền, Rút tiền, Chuyển khoản
  • 7. Các vấn đề gặp phải của lập trình hướng thủ tục với các hệ thống phức tạp: Vấn đề quản lí quá nhiều chức năng Vấn đề về quản lí dữ liệu phức tạp Vấn đề mở rộng chức năng và sử dụng lại module đã viết -> Phương pháp lập trình hướng đối tượng Lập trình hướng thủ tục Slide 2 - Lập trình hướng đối tượng 7
  • 8. Chương trình được chia thành các Đối tượng (Object). Mỗi đối tượng chịu trách nhiệm quản lí riêng dữ liệu và các chức năng của nó. Các đối tượng tác động và trao đổi thông tin với nhau qua các phương thức (chức năng). Lập trình hướng đối tượng Slide 2 - Lập trình hướng đối tượng 8 Quản lý Ngân hàng Các đối tượng: Khách hàng, Tiền, Tài khoản
  • 9. Đối tượng (Object) Lớp (Class) Thuộc tính (field, attribute) Phương thức (Method) Các khái niệm trong lập trình OOP Slide 2 - Lập trình hướng đối tượng 9
  • 10. Biểu diễn 1 đối tượng trong thế giới thực Mỗi đối tượng được đặc trưng bởi các thuộc tính và các hành vi riêng của nó Ví dụ: Đối tượng Khách hàng Đối tượng (Object) Slide 2 - Lập trình hướng đối tượng 10 Thuộc tính Hành vi Khách hàng  Họ tên  Địa chỉ  Số CMND  Số tài khoản  Rút tiền từ tài khoản  Nạp tiền vào tài khoản  Yêu cầu chuyển khoản
  • 11. Đối tượng trong thế giới thực và Đối tượng trong lập trình: Đối tượng (Object) Slide 2 - Lập trình hướng đối tượng 11 Object trong thế giới thực Object trong lập trình Các thuộc tính Các trường (field) Các hành vi Các phương thức (method) Khách hàng - Họ tên - Địa chỉ - Số CMND - Số tài khoản + Rút tiền + Nạp tiền + Chuyển khoản Tên đối tượng Các thuộc tính Các hành vi
  • 12. Trong OOP, cần ánh xạ các Đối tượng trong thực tế thành các Đối tượng trong lập trình Đối tượng (Object) Slide 2 - Lập trình hướng đối tượng 12
  • 13. Class là một khuôn mẫu (Prototype) đị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ùng loại. Mỗi đối tượng là một thể hiện của một Lớp (hay nói nôm na, đối tượng là sản phẩm được tạo ra từ khuôn là lớp). Ví dụ: Lớp các đối tượng Khách hàng Lớp (Class) Slide 2 - Lập trình hướng đối tượng 13 Đối tượng Lớp Khách Hàng
  • 14. Thuộc tính (Property/Attribute) là dữ liệu trình bày đặc trưng các đặc điểm về một Đối tượng. Phương thức (Method) tác động lên dữ liệu để thực hiện hành vi của Đối tượng. Thuộc tính và phương thức Slide 2 - Lập trình hướng đối tượng 14
  • 15. Định nghĩa của lớp Khách hàng Public Class KhachHang 'khai báo các thuộc tính Private mHoten As String Private mDiachi As String Private mCMND As String Private mSoTK As String 'khai báo các phương thức Public Sub RutTien(ByVal sotien As Integer) 'mã cài đặt phương thức ở đây End Sub Public Sub NapTien(ByVal sotien As Integer) 'mã cài đặt phương thức ở đây End Sub Public Sub ChuyenKhoan(ByVal nguoinhan As KhachHang, ByVal sotien As Integer) 'mã cài đặt phương thức ở đây End Sub End Class Ví dụ OOP trong VB.NET Slide 2 - Lập trình hướng đối tượng 15
  • 16. Cú pháp khai báo Class: [Điều khiển truy xuất] [Từ khóa] Class Tên lớp [Implements TenGiaoDien] ‘Khai báo các thuộc tính và phương thức ‘ Thực hiện các phương thức… End Class Khai báo Lớp Slide 2 - Lập trình hướng đối tượng 16
  • 17. Điều khiển truy xuất: định nghĩa khả năng truy cập của class, sử dụng một trong các từ khóa : Public, Private, Protected, Friend,Protected Friend Từ khóa: chỉ rõ các lớp có được thừa kế hay không, từ khóa Inherits, NotInheritable hoặc MustInherit. Class: đánh dấu bắt đầu một Class Tên lớp tên của một Class Implements: chỉ rõ class thực thi trên giao diện nào Tên Giao Diện: miêu tả tên giao diện.Một class có thể thực thi trên một hoặc nhiều giao diện. End Class: đánh dấu kết thúc khai báo của một class Khai báo Lớp Slide 2 - Lập trình hướng đối tượng 17
  • 18. Bảng các điều khiển truy xuất Slide 2 - Lập trình hướng đối tượng 18 Access Modifier Dùng trong Mô tả Public module, class, structure Được truy cập từ cùng project, từ project khác hoặc từ thành phần khác Private module, class, structure Chỉ được truy cập trong cùng module, class , structure Protected Classes, class member Được truy cập trong cùng class , hoặc class được kế thừa Friend module, class, structure Truy cập được trong cùng project Protected Friend Classes, class member Truy cập được trong cùng project Và từ các class được kế thừa
  • 19. Ví dụ khai báo lớp tên là Person Ví dụ khai báo một Class Slide 2 - Lập trình hướng đối tượng 19 Public Class Person ‘Các thành phần khác của class được khai báo ở đây End Class
  • 20. Các thành phần chủ yếu của một Class bao gồm: Biến thành viên (Field) Thuộc tính (Property) Phương thức khởi tạo (Constructor) Phương thức (Method) Các thành phần của một Class Slide 2 - Lập trình hướng đối tượng 20
  • 21. Biến thành viên (field) là một đặc tính bên trong của lớp. Ví dụ khai báo biến thành viên như sau: Biến thành viên Slide 2 - Lập trình hướng đối tượng 21 Public Class Person ' Khai báo 2 biến thành viên Private mName As String Private mAge As Integer End Class
  • 22. Thuộc tính (property): cho phép định nghĩa chi tiết thao tác truy cập các biến thành viên Ví dụ khai báo thuộc tính như sau: Thuộc tính Slide 2 - Lập trình hướng đối tượng 22 ‘ Thuộc tính cho phép đọc và gán Public Property Name() As String Get Return mName End Get Set(ByVal Value As String) mName = Value End Set End Property
  • 23. Được dùng để khởi tạo đối tượng Trong VB.Net, thủ tục New chính là phương thức khởi tạo Ví dụ: Phương thức khởi tạo (Constructor) Slide 2 - Lập trình hướng đối tượng 23 Public Class Person ' Khai báo 2 biến thành viên Private mName As String Private mAge As Integer ' Thủ tục khởi tạo Public Sub New(ByVal name As String, ByVal age As Integer) Me.mName = name Me.mAge = age End Sub End Class
  • 24. Có hai kiểu phương thức: Không trả về giá trị Trả về giá trị Ví dụ một phương thức không trả về giá trị Ví dụ một phương thức trả về giá trị Phương thức (Method) Slide 2 - Lập trình hướng đối tượng 24 Public Function Age() As Integer Return mAge End Function Public Sub Reset() mName = “” mAge = 0 End Function
  • 25. Khi có định nghĩa Lớp, có thể tạo các Đối tượng từ Lớp (thông qua phương thức khởi tạo) Tạo Đối tượng Slide 2 - Lập trình hướng đối tượng 25 ‘Định nghĩa đối tượng 1 Dim nguyen_nam_anh As New Person(“Nguyễn Nam Anh”, 18) ‘Định nghĩa đối tượng 2 Dim obj2 As New Person(“Lương Gia Thanh”, 20)
  • 26. Sau khi tạo đối tượng, có thể thực hiện các hành động mà đối tượng cung cấp Thao tác với Đối tượng Slide 2 - Lập trình hướng đối tượng 26 ‘Định nghĩa đối tượng 1 Dim nguyen_nam_anh As New Person(“Nguyễn Nam Anh”, 18) ‘Định nghĩa đối tượng 2 Dim obj2 As New Person(“Lương Gia Thanh”, 20) ‘Gọi phương thức Console.Write(obj2.Age());
  • 27. Trong tình huống cần mở rộng chức năng của một Lớp (hay nói cách khác là thêm hành vi cho đối tượng), có một số lựa chọn sau: Nếu có mã nguồn Lớp và muốn thay đổi trực tiếp trên lớp gốc -> thay đổi trực tiếp vào mã nguồn lớp gốc Nếu không muốn thay đổi Lớp gốc (hoặc không có mã nguồn), có thể sử dụng hai cách: 1. Tạo lớp Kế thừa (Inheritance) 2. Tạo lớp Tụ hợp (Composition) Mở rộng Lớp Slide 2 - Lập trình hướng đối tượng 27
  • 28. Kế thừa là một khả năng quan trọng của OOP Một Lớp con (sub-class) có thể được định nghĩa bằng cách thừa kế toàn bộ các đặc tính và hành vi của một lớp cha (super-class). Ví dụ trên, Apple cũng là một dạng trái cây (fruit). Do đó để tạo ra lớp Apple, thay vì định nghĩa lại từ đầu, có thể kế thừa từ lớp Fruit và bổ sung thêm các đặc tính và hành vi của quả táo. Mở rộng Lớp bằng Kế thừa Slide 2 - Lập trình hướng đối tượng 28
  • 29. Ví dụ mã định nghĩa lớp Apple kế thừa từ lớp Fruit Ví dụ Kế thừa Slide 2 - Lập trình hướng đối tượng 29 Public Class Fruit ‘Cài đặt chi tiết cho lớp Fruit End Class Public Class Apple Inherits Fruit ‘Cài đặt thêm các đặc tính và phương thức riêng của Apple End Class
  • 30. Trong thực tế, tụ hợp được sử dụng nhiều hơn kế thừa bởi tính linh hoạt của nó. Lớp mới được tạo ra bằng cách dùng lớp đã có sẵn như là một phần của mình, đồng thời bổ sung thêm các đặc tính và phương thức riêng. Ví dụ trên, Apple được tạo ra bằng cách dùng các thuộc tính và phương thức của lớp Fruit (thông qua một đối tượng fruit), đồng thời bổ sung thêm các thành phần của mình. Mở rộng Lớp bằng Tụ hợp Slide 2 - Lập trình hướng đối tượng 30
  • 31. Ví dụ mã định nghĩa lớp Apple kế thừa từ lớp Fruit Ví dụ Tụ hợp Slide 2 - Lập trình hướng đối tượng 31 Public Class Fruit ‘Cài đặt chi tiết cho lớp Fruit End Class Public Class Apple Private fruit As Fruit ‘Cài đặt thêm các đặc tính và phương thức riêng của Apple End Class
  • 32. Hiểu rõ về các khái niệm cơ bản của OOP: lớp, đối tượng, thuộc tính, phương thức, quyền truy cập, phương thức khởi tạo, kế thừa, tụ hợp,… sẽ giúp việc tìm hiểu, cài đặt mới hoặc sử dụng các cấu trúc dữ liệu sẵn có (ví dụ trong VB.NET) thuận lợi hơn rất nhiều. OOP và Cấu trúc dữ liệu+giải thuật Slide 2 - Lập trình hướng đối tượng 32
  • 33. Lập trình OOP xử lý với dữ liệu có cấu trúc dạng đối tượng Các khái niệm quan trọng trong lập trình OOP: Đối tượng (Object) Lớp (Class) Phương thức Thuộc tính Đối tượng được tạo ra thông qua phương thức khởi tạo (constructor) Tổng kết Slide 2 - Lập trình hướng đối tượng 33
  • 34. Lớp (Class) là khuôn, Đối tượng (Object) là sản phẩm được tạo ra từ khuôn đó -> các đối tượng được tạo ra từ cùng một khuôn class sẽ giống nhau về đặc tính và hành vi Kế thừa (Inheritance) là khả năng định nghĩa lớp con mở rộng từ một lớp cha Tụ hợp (Composition) là khả năng tập hợp nhiều lớp khác và các thành phần bổ sung để tạo thành Lớp mới Tổng kết Slide 2 - Lập trình hướng đối tượng 34