Tải bản đầy đủ (.pptx) (42 trang)

Bài giảng Lập trình hướng đối tượng: Chương 1 - ĐH Ngoại ngữ - Tin học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.48 MB, 42 trang )

Click to edit
Master subtitle
CHƯƠNG
1: style

GIỚI THIỆU
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Khoa Công nghệ thông tin
Trường Đại học Ngoại ngữ - Tin học, TP.HCM

1


NỘI DUNG
Một số Mơ thức lập trình
Khái niệm Lớp và Đối tượng
Ba nguyên tắc lập trình hướng đối tượng
Một số phần mềm được viết theo hướng đối
tượng

2


Tại sao OOP?
Object Oriented Programming (OOP) là mô thức
quan trọng
Tất cả ngôn ngữ hiện đại điều object oriented hay hỗ trợ
object và class
Các framework, library, API hiện đại đều object oriented
• .NET Framework Class Library (C#), Java API classes (Java),
• Laravel (PHP), Rails (Ruby),


• STL (C++), Django (Python), Android, …

Bất kỳ ai bắt đầu công việc phát triển phần mềm
nên làm quen với OOP và OO modeling
3


MỘT SỐ MƠ THỨC LẬP TRÌNH

4


Mơ thức lập trình
Programming paradigm: Mơ thức/Mơ hình lập trình
Cách chúng ta “nhìn” về việc xây dựng các chương trình máy tính

Một số programming paradigm:
Imperative
Structured
Procedural
Object oriented
Functional
Declarative


5


Imperative programming
Mơ thức “Lập trình Tuần tự” với ý tưởng chủ

đạo là lệnh (commands)
Input data
Process
Output data

Chương trình là chuỗi các lệnh (cụ thể/rõ ràng
(explicit)) có thứ tự (step by step) dùng để thay
đổi trạng thái chương trình

6


Ví dụ
DATA SEGMENT
A DB 1,2,3,4,5,6,7,8,9,10
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV CL,10
LEA BX,A
MOV AH,00
MOV AL,00
L1:
ADD AL,BYTE PTR[BX]
INC BX
DEC CL
CMP CL,00

JNZ L1
MOV AH,4CH
INT 21
END START
CODE ENDS
7


Imperative programming
Đặc điểm:
Các biến toàn cục
Mỗi bước ảnh hưởng đến trạng thái tồn cục của
chương trình
Có lệnh goto để nhảy đến lệnh khác
Có những đoạn mã được viết nhiều lần

Ngơn ngữ: Assembly, Pascal, C, …

8


Structured programming
Mơ thức “Lập trình Cấu trúc” là dạng
Imperative programming, nhưng Chương trình
có tổ chức, cấu trúc logic hơn:
result = [];
for i = 0; i < length(people); i++
{
    p = people[i];
    if length(p.name)) > 5

{
        addToList(result, toUpper(p.name));
  }
}
return sort(result);
9


Structured programming
Đặc điểm:
Lệnh tuần tự (Sequence), Lệnh lặp (Loop), Lệnh điều kiện
(Condition)
Phong cách lập trình Thục đầu dịng (indentation)
Loại bỏ/hạn chế lệnh goto

Ngơn ngữ: Pascal, C, …
Khuyết điểm:
Khó phân cơng cho nhiều người cùng viết
Dữ liệu được “thả tự do”
Có những đoạn mã viết nhiều lần
10


Procedural programming
Mơ thức “Lập trình Thủ tục” kế thừa structured
programming và đưa thêm ý tưởng chương
trình con (procedure/function) chứa các đoạn
mã thường sử dụng
Chương trình máy tính có thể chia thành các
chương trình con (procedure) và các chương

trình con gọi nhau để giải quyết bài toán

11


Ví dụ
public static int Factorial(int n)
{
int result = 1;
for (int i = 2; i <= n; i++)
result = result * i;
}

return result;

static void Main(string[] args)
{
int fact;
fact = Factorial(5);
Console.WriteLine("5! = " + fact);

}

int n = 10;
int m = 5;
fact = Factorial(n) + Factorial(m);
Console.WriteLine("n! + m! = " + fact);
12



Procedural programming
Đặc điểm
Tập trung vào “action” của chương trình, khơng phải data
Phương pháp top-down, làm mịn dần:
Chia chương trình lớn thành các chương trình con, …
Biến tồn cục (global variable) và Biến cục bộ (local variable)

Ngôn ngữ: Pascal, C, …
Khuyết điểm:
Mối quan hệ giữa dữ liệu và hàm không được quan tâm, quản

13


Object oriented programming
Mơ thức “Lập trình Hướng đối tượng” cải biên
procedure programming bằng cách đưa vào ý
tưởng object (đối tượng)
Đối tượng = Dữ liệu + Hàm thao tác trên Dữ liệu

Chương trình máy tính gồm các objects, các
objects giao tiếp với nhau để giải quyết bài
toán đặt ra

14


Ví dụ
class Student
{

string code;
string name;
int yearOfBirth;
public Student(string studentCode, string studentName, int year)
{
code = studentCode;
name = studentName;
yearOfBirth = year;
}

}

public int GetYearOld()
{
return DateTime.Now.Year - yearOfBirth;
}
15


Ví dụ
class InformaticsClass
{
Student[] students;
string className;
public void Input()
{
}
public int NumStudents()
{
if (students == null)

return 0;

}

}

class Program
{
static void Main(string[] args)
{
InformaticsClass a = new InformaticsClass();

}

}

a.Input();
Console.WriteLine("No. " + a.NumStudents());

return students.Length;

16


Object Oriented Programming
Đặc điểm:
Tập trung xung quanh khái niệm object (tập trung vào
dữ liệu và những gì làm với dữ liệu đó)
• Tập trung cả Dữ liệu và Hàm
• Tổ chức code theo cách (mô phỏng) hoạt động của thế giới thực

• Mơ hình hóa các đối tượng trong thế giới thực vào máy tính

Hỗ trợ Các ngun tắc:
• Đóng gói (encapsulation)
• Thừa kế (inheritance)
• Đa hình (polymorphism), …

17


Object Oriented Programming
Ưu điểm:
Quản lý mối quan hệ giữa Dữ liệu và Hàm
(trong object)
Tổ chức code hiệu quả theo cách thức tổ chức
trong tự nhiên
Giúp mơ hình hóa các đối tượng trong thế giới thực
trên máy tính

Ngơn ngữ: C++, Java, C#, …

18


KHÁI NIỆM LỚP VÀ ĐỐI TƯỢNG

19


Đối tượng (object)

Trong thế giới thực có nhiều đối tượng:

20


Đối tượng (object)
Hoạt động thường ngày:
Sáng ra khỏi gường, dùng bàn chảy đánh răng,
ăn sáng và uống cafe,
đến công ty làm việc,
đến nhà hàng ăn trưa, giải lao,
rồi quay về công ty làm viêc, …
tối vào bếp nấu ăn, xem ti vi/đọc sách, lên gường ngủ.

Life là quá trình tương tác giữa các đối tượng với nhau
Ý tưởng: Tiến trình viết phần mềm là q trình mơ hình
hóa từ thực tế vào máy tính
21


Đối tượng (object)
Trong thế giới thực, đối tượng (object) thường có
Một số thuộc tính cấu tạo nên đối tượng
Một số hành vi
Attributes:
- ID
- Name
- YearOfBirth
- …


Attributes:
- Title
- Author
- Pages
- …

Behaviours:
- GetAge
- SetName
- …

Behaviours:
- CountWords
- BookMark
- SetTitle
- …
22


Đối tượng (object)
OOP là phương pháp chuyển các vấn đề thế giới thực (đối
tượng thực) sang các mơ hình (đối tượng trên máy tính) có
thể giải quyết trên máy tính
Trong OOP, Đối tượng (object): Bất kỳ thứ gì có thể được mơ
hình thành:
Dữ liệu (data/field/property/attribute/state)
Hàm (function/method/behaviour/operation) thao tác trên dữ
liệu

Trong OOP, Đối tượng (object) là biến có Tập dữ liệu và Hàm


23


Đối tượng (object) – ví dụ
Real world object: Car
Properties: color, make, model, year, …
• Velocity

Methods:
• Accelerator (chân ga)
• Brake (thắng)
• Speedmotor (đồng hồ tốc độ)
24


Lớp (class)
Lớp (class): Nhiều đối tượng cụ thể “giống nhau”
được nhóm thành một loại/lồi hay lớp (class)
Lớp (class) là mẫu (template) hay bản thiết kế
(blueprint) để tạo đối tượng

25


×