1. Trang chủ
  2. » Công Nghệ Thông Tin

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 1 pptx

12 384 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 16,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Một chương trình là một trật tự các lời yêu cầu đối tượng thực hiện hành vi của mình.. tạo nên chương trình • Thiết kế bottom-up Đối tượng = Dữ liệu + Hành vi 9 OOP-CHƯƠNG 1- NHẬP MÔN

Trang 1

Chương 1:

NHẬP MÔN LẬP TRÌNH

HƯỚNG ĐỐI TƯỢNG

Giáo viên: Võ Hồng Bảo Châu Khoa CNTT trường ĐH Lạc Hồng

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

MỤC TIÊU

Nhận biết sự khác biệt giữa lập trình hướng thủ tục và lập trình hướng đối tượng.

Phân tích, thiết kế và hiện thực được một chương trình theo phương pháp hướng đối tượng

Nhận diện một số ngôn ngữ OOP.

Nhận biết các khái niệm cơ bản của OOP.

2 OOP-CHƯƠNG 1- NHẬP MÔN OOP

NỘI DUNG CHI TIẾT

LẬP TRÌNH THỦ TỤC – POP

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

SƠ LƯỢC VỀ OOP

– ĐỐI TƯỢNG

– HÀNH VI

– THÔNG ĐIỆP

– DỮ LIỆU

– ĐẶC TÍNH

GIẢI BÀI TOÁN VỚI OOP

TÓM TẮT

3 OOP-CHƯƠNG 1- NHẬP MÔN OOP

LẬP TRÌNH THỦ TỤC

POP- Procedure Oriented Programming.

– Phân công việc  những việc nhỏ hơn – Là các chương trình con

– Thiết kế top-down

Kỹ thuật POP:

Problem

Data structure

Operation (function)

Program

struct XX {

};

type Fun (XX x) {

};

void main() { X x;

Fun(x);

};

pick nouns

pick verbs

Data structure + Algorithm = Program

4 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 2

NHƯỢC ĐIỂM CỦA POP

Diễn đạt “thiếu tự nhiên”

Có học sinh x

“Viết lý lịch cho học sinh x”

“x ơi, viết lý lịch đi em”

“x ơi, viết lý lịch đi em”

VietLyLich(x);

x.VietLyLich();

Diễn đạt nào tự nhiên hơn?

5 OOP-CHƯƠNG 1- NHẬP MÔN OOP

NHƯỢC ĐIỂM CỦA POP

Khó mô tả những quan hệ phức tạp của thế giới tự nhiên

Biểu diễn dạng cấu trúc “phức tạp”, không phải là dễ dàng

đối với nhiều người.

– Quan hệ giữa các dữ liệu được biểu diễn bằng cấu trúc lồng nhau hoặc một pointer  Tính phân lớp khó được phát hiện, có khó khăn trong biểu diễn lẫn tính dễ hiểu

Bảo mật kém do không thể giới hạn truy xuất đến một dữ liệu.

struct STUDENT { char Name[21];

int Age;

int Score;

};

void main() {STUDENT x = { “Hoa”, 19, 5};

x.Age=1000;

x.Score=-20;

};

Bạn nghĩ sao về 2 tác vụ này?

6 OOP-CHƯƠNG 1- NHẬP MÔN OOP

OOP

Cần một phương pháp lập trình khác giúp giải quyết những nhược điểm này.

OOP có những đặc điểm vượt trội so với POP và là hướng lập trình chủ đạo hiện nay.

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

OOP – Object Oriented Programming.

Chương trình là sự hoạt động của các đối tượng  Giống

tự nhiên.

Đối tượng thực thi một hoạt động tức là đối tượng thực

hiện một hành vi mà đối tượng này có khả năng.

Một chương trình là một trật tự các lời yêu cầu đối tượng thực hiện hành vi của mình

 Chương trình là một kích bản (script).

Trang 3

Từ những đối tượng, sự vật, sự kiện, tạo nên chương

trình

Thiết kế bottom-up

Đối tượng = Dữ liệu + Hành vi

9 OOP-CHƯƠNG 1- NHẬP MÔN OOP

ƯU ĐIỂM CỦA OOP

Dễ mô tả các quan hệ phân cấp trong thế giới tự nhiên.

Tự nhiên

Person

Male Female

is a is a

class PERSON {

} ;

class MALE: PERSON {<dữ liệu thêm>

} ;

class FEMALE: PERSON { <dữ liệu thêm>

} ;

tự nhiên

Hiện thực

10 OOP-CHƯƠNG 1- NHẬP MÔN OOP

ƯU ĐIỂM CỦA OOP

Có tính bảo mật cao: Bên ngoài không thể tùy tiện

truy cập một dữ liệu thuộc tính.

11 OOP-CHƯƠNG 1- NHẬP MÔN OOP

ƯU ĐIỂM CỦA OOP

Tái sử dụng code

Tái sử dụng code

12 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 4

SỰ KHÁC BIỆT

 Theo thủ tục

Rút tiền (withdraw), gửi tiền

(deposit), chuyển tiền (transfer)

Hướng đối tượng

Khách hàng (customer), tiền (money), tài khoản (account)

13 OOP-CHƯƠNG 1- NHẬP MÔN OOP

SƠ LƯỢC VỀ OOP

Đối tượng = Dữ liệu + Hành vi

14 OOP-CHƯƠNG 1- NHẬP MÔN OOP

ĐỐI TƯỢNG

Một đối tượng như là một hộp đen, mà chi tiết bên trong được dấu kín

Các đối tượng giao tiếp với nhau thông qua việc truyền các thông điệp

(messages)

Thông điệp được nhận bởi các hành vi của đối tượng

Lan Cúc Trúc Mai

girl

class object

Trang 5

DỮ LIỆU (data):

-Xinh đẹp -Dịu dàng -

HÀNH VI (behavior ):

-mua sắm -làm việc nhà -…

17 OOP-CHƯƠNG 1- NHẬP MÔN OOP

HÀNH VI (BEHAVIOR)

Thao tác (operation)

Phương thức (method)

Hàm (function)

Thủ tục (procedure)

18 OOP-CHƯƠNG 1- NHẬP MÔN OOP

DỮ LIỆU (DATA)

Thông tin (information)

Tính chất (property)

Thuộc tính (attribute)

Trường (field)

19 OOP-CHƯƠNG 1- NHẬP MÔN OOP

NHỮNG GÌ LÀ ĐỐI TƯỢNG

 Vật có thể sờ mó được

(Tangible things)

Vai trò (Roles)

 Sự việc xảy ra, tình tiết

(Incidents)

Sự tương tác (Interactions)

Sự mô tả (Specifications)

Như là xe hơi, máy in,

Công nhân, người chủ,

Chuyến bay, tràn số,

Ký kết thỏa ước, mua hàng,

Màu, hình dạng

20 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 6

THÔNG ĐIỆP

Gửi thông điệp: Yêu cầu 1 đối tượng thực thi một hành vi.

Thí dụ:

x là một HOCSINH < Name, Age>

x.VietLyLich();

String S= x.getName();

int n= x.getAge();

21 OOP-CHƯƠNG 1- NHẬP MÔN OOP

MỘT SỐ ĐẶC TÍNH

TÍNH ĐÓNG GÓI (ENCAPSULATION)

TÍNH THỪA KẾ (INHERITANCE)

TÍNH ĐA HÌNH (POLYMORPHISM)

22 OOP-CHƯƠNG 1- NHẬP MÔN OOP

TÍNH ĐÓNG GÓI (ENCAPSULATION)

Dữ liệu và thao tác được nhóm lại với nhau

Thực chất là sự ghép chung những hiểu biết về thế giới thực 

Có sự đồng nhất giữa

dữ liệu và thao tác trên dữ liệu

Account

Withdraw

Deposit

Transfer

TÍNH THỪA KẾ (INHERITANCE)

Tạo ra một kiểu dữ liệu mới từ kiểu đã có

Nhằm sử dụng lại, và bổ sung những gì cần thiết

Thực chất là sự phân lớp

(classification) trong việc thiết

kế hệ thống theo hướng đối tượng

Trang 7

TÍNH THỪA KẾ (INHERITANCE)

 Theo ngôn ngữ lớp, sự thừa kế có nghĩa là một lớp

thừa kế các đặc tính của lớp khác.

 Đây chính là quan hệ “là một” (“is a”)

A car is a vehicle

A teacher is a person

A dog is an animal

25 OOP-CHƯƠNG 1- NHẬP MÔN OOP

TÍNH ĐA HÌNH (POLYMORPHISM)

Nhiều đối tượng cùng chia sẻ đặc tính chung, nhưng có những tác động khác nhau.

Có cùng yêu cầu, nhưng mỗi đối tượng có đáp ứng khác nhau.

Thực chất là tính đa dạng (many form)

Để hiện thực được tính đa hình, ngôn ngữ đối tượng có đặc tính như overload, override.

26 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Overloaded và Overridden methods ?

Overloaded methods:

– Nhằm cung cấp các dạng khác nhau của hành vi, nhưng vẫn có

cùng tên gọi

Overridden methods:

– Hiện thực lại hành vi đã có của tổ tiên

– Phải có cùng tên và trùng mọi yếu tố tạo nên hành vi này

27 OOP-CHƯƠNG 1- NHẬP MÔN OOP

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

C++ ( Borland C++, Visual C++)

Java

C# ( C sharp)

Visual Basic.

28 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 8

C++, MS VC++: hỗ trợ cả POP lẫn OOP  Lai OOP Hỗ trợ

đa thừa kế Đối tượng là biến của chương trình Hàm

main() là POP.

Java (Sun), C# (Microsoft): chỉ hỗ trợ OOP, hàm main phải

nằm trong một lớp Chỉ hỗ trợ đơn thừa kế.

29 OOP-CHƯƠNG 1- NHẬP MÔN OOP

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

Fortran (1954)

Algol (1958) LISP (1957)

Scheme (1975)

CPL (1963), U Cambridge Combined Programming Language BCPL (1967), MIT

Basic Combined Programming Language

B (1969), Bell Labs

C (1970), Bell Labs C++ (1983), Bell Labs

Java (1995), Sun

Objective C

30 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Phương pháp giải bài toán theo OOP

Problem

properties

Operation (function, method, behavior)

Program

class XX { type1 prop1;

type2 prop2;

type Method1( ) {

}

};

void main() { XX x; // object variable

x.Method( );

};

pick nouns

pick verbs

Bao gói dữ liệu và hành vi thành class

SO SÁNH 2 CÁCH ViẾT CHƯƠNG TRÌNH

Viết chương trình nhập, xuất 1 học sinh Thông tin cần quan tâm về 1 học sinh : Mã học sinh (8 ký tự), tên học sinh (30 ký tự), điểm (int).

Danh từ: Học sinh  cấu trúc HS

Động từ:

– Bắt đầu;

– Nhập một hs  Hàm Nhap(HS&hs) – Xuất một hs  Hàm Xuat(HS hs);

– Ngưng

Trang 9

Giải bài toán hướng POP với C++

33 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Giải bài toán hướng OOP

34 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Đối chứng hai cách hiện thực

35 OOP-CHƯƠNG 1- NHẬP MÔN OOP

TÓM TẮT

POP: Xem dữ liệu và tác vụ rời nhau.

Các nhược điểm của POP

– Mô tả các quan hệ giữa các đối tượng dữ liệu trong tự nhiên theo

cac1h “không tự nhiên”.

– Khó tái sử dụng code

– Bảo mật kém

Chương trình=cấu trúc dữ liệu + thuật toán

36 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 10

TÓM TẮT

OOP: Xem dữ liệu và tác vụ là một thể thống nhất.

Ưu điểm của OOP:

– Mô tả các quan hệ giữa các đối tượng dữ liệu trong tự nhiên theo

cách “ tự nhiên”.

– Dễ tái sử dụng code

– Có cơ chế bảo mật dữ liệu

Đối tượng = Dữ liệu + Hành vi

37 OOP-CHƯƠNG 1- NHẬP MÔN OOP

TÓM TẮT

TRONG OOP

Đối tượng phải thuộc một lớp (class).

OOP CÓ 3 ĐẶC TÍNH CƠ BẢN:

– TÍNH ĐÓNG GÓI (ENCAPSULATION)

– TÍNH THỪA KẾ (INHERITANCE) – TÍNH ĐA HÌNH (POLYMORPHISM)

38 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Lập trình OOP cũng tương tự như lập trình POP nhưng mô tả bài toán dưới

dạng các class, các tác vụ xử lý dữ liệu thành các hành vi của class.

Khai báo class cũng tương tự như khai báo struct nhưng có khác struct ở chỗ

đưa các tác vụ thao tác lên struct vào trong class và gọi chúng là các methods

của lớp

struct StructName

{

<data>

};

Type1 Func1 (StructName stru)

{ <code>}

Type2 Func2 (StructName stru)

{<code>}

các hàm đều toàn cục

class ClassName

{

<data>

Modifier : Type1 Func1 ()

{ <code>}

Modifier : Type2 Func2 ()

{ <code>}

};

Chỉ có method public là toàn cục

public private protected

CÂU HỎI PHẦN TỰ HỌC

TỰ DIỄN TẢ THEO Ý BẢN THÂN

Trình bày phương pháp lập trình POP.

Trình bày phương pháp lập trình OOP.

Nhận xét ưu và khuyết điểm của cả 2 phương pháp

Trang 11

BÀI TẬP TẠI LỚP

HÃY PHÂN TÍCH CÁC BÀI TẬP SAU, XÁC ĐỊNH ĐỐI TƯỢNG

CẦN QUAN TÂM LÀ GÌ, THÀNH PHẦN DỮ LiỆU VÀ THÀNH

PHẦN HÀNH VI CỦA CÁC ĐỐI TƯỢNG ĐÓ, TỪ ĐÓ XÂY

DỰNG THÀNH LỚP (CHƯA YÊU CẦU VIẾT CODE).

1) Nhập vào 3 số thực Kiểm tra xem đó có phải là 3 cạnh của

tam giác hay không Nếu phải, hãy cho biết tam giác đó là

tam giác gì (vuông, cân, đều, thường) và tính diện tích tam

giác đó.

2) Nhập vào 3 số ngày, tháng, năm Kiểm tra xem ngày tháng

năm đó có hợp lệ không? Nếu có in ra ngày hôm sau.

3) Nhập vào 1 ma trận mxn Tính tổng các phần tử nằm trên

đường chéo chính.

41 OOP-CHƯƠNG 1- NHẬP MÔN OOP

BÀI TẬP TẠI LỚP

4 Viết chương trình tính tổng, hiệu, tích, thương của 2 phân

số nhập từ bàn phím In ra kết quả dưới dạng tối giản.

5 Viết chương trình giải phương trình bậc 1: ax+b=0 với a,b

là 2 số thực nhập từ bàn phím.

6 Viết chương trình nhập hồ sơ học sinh của lớp học gồm:

tên, tuổi, điểm trung bình cả năm

– In ra tuổi lớn nhất, tuổi nhỏ nhất của lớp, – Học sinh có điểm trung bình lớn nhất, học sinh có điểm trung bình nhỏ nhất

– In danh sách theo thự tự của tên

42 OOP-CHƯƠNG 1- NHẬP MÔN OOP

BÀI TẬP TẠI LỚP

7 Nhập vào tọa độ 2 điểm trong mặt phẳng Tính và in ra tọa

độ trung điểm của chúng.

8 Nhập vào thời gian bắt đầu chạy và thời gian đến của một

vận động viên Cho biết thời gian chạy của vận động viên

đó.

9 Tính diện tích của hình tròn, hình vuông, hình chữ nhật,

hình tam giác.

10 Nhập danh sách n học sinh gồm họ lót, tên, ngày sinh,

điểm văn, toán, lí, hoá.

a) In ra màn hình họ tên của học sinh có điểm trung bình

cao nhất.

b) In ra màn hình danh sách được xếp theo điểm trung

bình giảm dần.

43 OOP-CHƯƠNG 1- NHẬP MÔN OOP

BÀI CHUẨN BỊ TRƯỚC

ÔN LẠI NGÔN NGỮ LẬP TRÌNH C/C++

– Kiểu dữ liệu – Biến, hằng, biểu thức, phép toán – Câu lệnh điều kiện: if, switch – Câu lệnh lặp: for, while, do while – Hàm: khai báo, truyền tham số, gọi hàm,…

– Mảng 1 chiều, 2 chiều – Chuỗi ký tự

– Cấu trúc struct – Con trỏ

Làm bài tập về nhà

44 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Trang 12

THANK YOU

45 OOP-CHƯƠNG 1- NHẬP MÔN OOP

Ngày đăng: 11/07/2014, 20:20

HÌNH ẢNH LIÊN QUAN

Hình tam giác. - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 1 pptx
Hình tam giác (Trang 11)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w