1. Trang chủ
  2. » Giáo án - Bài giảng

OOP_ch01_Introduce OOP

25 195 2
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

Tiêu đề Giới thiệu Lập Trình Hướng Đối Tượng
Trường học Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội
Chuyên ngành Lập trình hướng đối tượng
Thể loại Giáo trình
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 535 KB

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

Nội dung

Lập trình cấu trúcTư tưởng của phương pháp lập trình cấu trúc là tổ chức chương trình thành các chương trình con và theo quan điểm của phương pháp lập này thì chương trình là sự kết hợ

Trang 1

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

Trang 2

Tóm tắt nội dung môn học

Phần 1: Giới thiệu

Phần 2: Các khái niệm cơ bản

Phần 3: Lớp và đối tượng

Phần 4: Kỹ thuật thừa kế và tính đa hình

Phần 5: Thiết kế chương trình hướng đối tượng

Phần 6: Khuôn mẫu (template)

Phần 7: Luồng nhập xuất

Phần 8: Cacù mẫu thiết kế hướng đối tượng

Trang 3

Tài liệu tham khảo

Stroustrup, Bjarne The C++ Programming Language, 3rd Ed.

Dietel & Dietel C++ How to Program, 3rd Ed 2003

Eckel, Bruce Thinking in C++, 2nd Ed Vol 1 Vol.2.

Nguyễn Thanh Thủy …, Lập trình hướng đối tượng với C++ NXB

Khoa học kỹ thuật.

Gamma: Design Patterns Addison-Wesley, 1998.

Trang 4

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

TƯỢNG

Chương 1: Giới thiệu

Trang 5

C++ và C

Sự mở rộng thứ nhất của C++ so với C

 Hàm xuất/nhập chuẩn

 Tham chiếu

 Chồng hàm, Tham số có giá trị ngầm định

 Toán tử cấp phát và giải phóng vùng nhớ động

Sự mở rông thứ hai của C++ so với C là hỗ trợ

lập trình hướng đối tượng

Trang 7

Tham chiếu

Tham chiếu là địa chỉ vùng nhớ được cấp phát cho một

biến.

Ký hiệu & đặt trước biến hoặc hàm để xác định tham

chiếu của chúng

 void swap1(int x, int y) { int t = x; x = y; y = t; }

 void swap2(int *x, int *y) { int *t = x; x = y; y = t; }

 void swap3(int &x, int &y) { int t = x; x = y; y = t; }

Trang 8

int abs(int i) { return abs(i);}

long abs(long l) { return labs(l);}

double abs(double d) { return fabs(d);}

void test_abs() {

int i = abs(10);// abs(int )

Trang 9

Tham số ngầm định trong lời gọi hàm

void inc(int &a, int b = 1) {

Trang 10

Toán tử quản lý bộ nhớ động

Toán tử cấp phát bộ nhớ động new

int *x;

x = new int; // x = (int*)malloc(sizeof(int)); char *y;

y = new char[100]; // y = (char*)malloc(100);

Toán tử giải phóng vùng nhớ động delete

delete x; // free(x);

delete y; // free(y);

Trang 11

Nên khai báo hằng đối với:

 Các đối tượng mà ta không định sửa đổi

const double PI = 3.14;

const Date openDate(18,8,2003);

 Các tham số của hàm mà ta không định cho hàm đó sửa đổi

void printHeight(const LargeObj &LO)

{ cout << LO.height; }

 Các hàm thành viên không thay đổi đối tượng chủ

int Date::getDay() const { return day; }

Trang 12

Lập trình cấu trúc

Tư tưởng của phương pháp lập trình cấu trúc là

tổ chức chương trình thành các chương trình con

và theo quan điểm của phương pháp lập này thì

chương trình là sự kết hợp giữa cấu trúc dữ liệu

và giải thuật Điều này gây ra khĩ khăn:

Người lập trình phải cĩ kiến thức rất vững về cấu

trúc dữ liệu

Trang 13

Lập trình cấu trúc

Chương trình = Cấu trúc dữ liệu + giải thuật

Giải thuật của chương trình phụ thuộc rất chặt

chẽ vào cấu trúc dữ liệu, do vậy chỉ cần một thay

đổi nhỏ ở cấu trúc dữ liệu cũng cĩ thể làm thay đổi giải thuật và phải viết lại chương trình

=>Như vậy, phương pháp này khơng thích hợp

cho dự án phần mềm lớn

Trang 14

L p trình hướng đối tượng ậ

Lập trình hướng đối tượng đặt trọng tâm vào đối tượng,

yếu tố quan trọng trong quá trình phát triển chương trình

và khơng cho phép dữ liệu biến động tự do trong hệ thống

- Dữ liệu được gắn chặt với các hàm thành các vùng riêng

mà chỉ cĩ các hàm đĩ tác động lên và cấm các hàm bên ngồi truy nhập tới một cách tùy tiện

- Lập trình hướng đối tượng cho phép chúng ta phân tích

bài tốn thành các thực thể được gọi là các đối tượng và sau đĩ xây dựng các dữ liệu cùng các hàm xung quanh các đối tượng đĩ

- Các đối tượng cĩ thể tác động, trao đổi thơng tin với nhau thơng qua cơ chế thơng báo

Trang 15

Các đặc điểm quan trọng của OO

Các lớp đối tượng - Classes

Trang 16

Một số ngôn ngữ lập trình hướng đối tượng

Trang 17

Trừu tượng hóa

 Là cách nhìn đơn giản hóa về một đối tượng mà

trong đó chỉ bao gồm những đặc điểm được quan tâm và bỏ qua những chi tiết không cầm thiết

Trang 18

Tính đóng gói

 Tách rời các khía cạnh giao diện với bên ngoài

của đối tượng với chi tiết cài đặt bên trong

 Tính đóng gói ngăn chặn khả năng một chương

trình trở nên quá phụ thuộc lẫn nhau dẫn tới hậu quả một sự thay đổi nhỏ có thể ảnh hưởng lớn đến toàn bộ hệ thống

 Trong tiếp cận O.O khả năng kết hợp dữ liệu và

hành vi trong một thực thể duy nhất giúp cho tính đóng gói rõ ràng hơn và hiệu quả hơn

Trang 19

Kết hợp dữ liệu và hành vi

 Trong cách tiếp cận thủ tục cổ điển, hệ thống

được xây dựng trên hai sơ đồ phân cấp chằng chịt: sơ đồ phân cấp dữ liệu và sơ đồ phân cấp thủ tục, trong đó sự liên hệ giữa một loại dữ liệu và các thủ tục xử lý dữ liệu rất mờ nhạt, dẫn đến khó khăn trong việc sửa chữa, nâng cấp

trong tương lai

 Cách tiếp cận O.O loại bỏ những nhược điểm kể

trên bằng cách kết hợp dữ liệu và phần thủ tục xử lý dữ liệu vào trong một thực thể duy nhất, hệ thống trở thành một sơ đồ phân cấp duy nhất các lớp đối tượng

Trang 20

Đối tượng và lớp

 Ta định nghĩa một đối tượng là một "cái gì đó"

có ý nghĩa cho vấn đề ta quan tâm Đối tượng phục vụ hai mục đích: Giúp hiểu rõ thế giới thực và cung cấp cơ sở cho việc cài đặt trong máy

 Mỗi đối tượng có một nét nhận dạng để phân

biệt nó với các đối tượng khác Nét nhận dạng mang ý nghĩa các đối tượng được phân biệt với nhau do sự tồn tại vốn có của chúng chứ không phải các tính chất mà chúng có

Trang 21

Đối tượng và lớp

 Các đối tượng có các đặc tính tương tự nhau

được gom chung lại thành lớp đối tượng Ví dụ

Người là một lớp đối tượng Một lớp đối tượng

được đặc trưng bằng các thuộc tính, và các hoạt động (hành vi).

 Một thuộc tính (attribute) là một giá trị dữ

liệu cho mỗi đối tượng trong lớp Tên, Tuổi, Cân nặng là các thuộc tính của Người.

 Một thao tác (operation) là một hàm hay một

phép biến đổi có thể áp dụng vào hay áp dụng bởi các đối tượng trong lớp

Trang 22

Đối tượng và lớp

 Cùng một thao tác có thể được áp dụng cho

nhiều lớp đối tượng khác nhau, một thao tác như vậy được gọi là có tính đa dạng (polymorphism)

 Mỗi thao tác trên mỗi lớp đối tượng cụ thể

tương ứng với một cài đặt cụ thể khác nhau

Một cài đặt như vậy được gọi là một phương thức (method).

 Một đối tượng cụ thể thuộc một lớp được gọi

là một thể hiện (instance) của lớp đó Joe

Smith, 25 tuổi, nặng 58kg, là một thể hiện của lớp người

Trang 23

Sơ đồ đối tượng

 Ta dùng sơ đồ đối tượng để mô tả các lớp đối

tượng Sơ đồ đối tượng bao gồm sơ đồ lớp và

sơ đồ thể hiện.

 Sơ đồ lớp mô tả các lớp đối tượng trong hệ

thống, một lớp đối tượng được diễn tả bằng một hình chữ nhật có 3 phần: phần đầu chỉ tên lớp, phần thứ hai mô tả các thuộc tính và phần thứ ba mô tả các thao tác của các đối tượng trong lớp đó

Trang 24

Sơ đồ lớp và sơ đồ thể hiện

Sinh viên Họ tên

Năm sinh Mã số

Điểm TB

Đi học

Đi thi Phân loại

(Sinh viên) Nguyễn Văn A 1984

0610234T 9.2

Trang 25

Một số thuật ngữ hướng đối tượng

 OOM (Object Oriented Methodology): Phương pháp luận hướng đối tượng

 OOA (Object Oriented Analysis): Phân tích hướng

đối tượng

 OOD: Object Oriented Design (Thiết kế hướng đối

tượng)

 OOP: Object Oriented Programming (lập trình

hướng đối tượng)

 Inheritance: Kế thừa

 Polymorphism: Đa hình

 Encapsulation: Tính đóng gói

Ngày đăng: 06/07/2013, 01:27

HÌNH ẢNH LIÊN QUAN

Sơ đồ đối tượng - OOP_ch01_Introduce OOP
i tượng (Trang 23)
Sơ đồ lớp Sơ đồ thể hiện - OOP_ch01_Introduce OOP
Sơ đồ l ớp Sơ đồ thể hiện (Trang 24)
Sơ đồ lớp và sơ đồ thể hiện - OOP_ch01_Introduce OOP
Sơ đồ l ớp và sơ đồ thể hiện (Trang 24)

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN