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

Bài giảng Lập trình hướng đối tượng Chương 1 Trường Đại học 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 (1.23 MB, 42 trang )

Click to edit Master subtitle style

CHƯƠNG 1:

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 tố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 lý

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;

class Program
{

public void Input()

static void Main(string[] args)

{


{

}

InformaticsClass a = new InformaticsClass();

public int NumStudents()

a.Input();

{

Console.WriteLine("No. " + a.NumStudents());
if (students == null)
return 0;

}
}

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


Behaviours:

-

GetAge
SetName


Attributes:

-

Title
Author

Pages


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


×