Bài giảng Kỹ thuật lập trình: Chương 5 - Trường Đại học Ngoại ngữ - Tin học TP.HCM
lượt xem 5
download
Bài giảng Kỹ thuật lập trình: Chương 5 Kỹ thuật hướng đối tượng, cung cấp cho người đọc những kiến thức như: Giới thiệu lập trình hướng đối tượng (OOP); Các khái niệm: đối tượng (object), thuộc tính (attribute/field), phương thức (method), lớp (class), thực thể (instance); Các đặc điểm của OOP; Phương pháp phân tích và thiết kế OOP; Kỹ thuật tổ chức code OOP. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 5 - Trường Đại học Ngoại ngữ - Tin học TP.HCM
- KỸ THUẬT 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 (HUFLIT)
- Nội dung • Giới thiệu lập trình hướng đối tượng (OOP) • Các khái niệm: đối tượng (object), thuộc tính (attribute/field), phương thức (method), lớp (class), thực thể (instance) • Các đặc điểm của OOP • Phương pháp phân tích và thiết kế OOP • Kỹ thuật tổ chức code OOP • Bài tập vận dụng 2
- GIỚI THIỆU OOP
- Mô hình lập trình • Mô hình lập trình (Programming Paradigms): là cách thức tổ chức, xây dựng một chương trình máy tính. • Mỗi ngôn ngữ lập trình sẽ hỗ trợ một hoặc một số mô hình lập trình nhất định. • Một số mô hình lập trình thông dụng: • Imperative/Sequential Programming • Structured Programming • Procedural Programming • Object Oriented Programming •… 4
- Bài toán ví dụ • 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 sẽ có các giao dịch với ngân hàng như: • 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 5
- Bài toán ví dụ • Lập trình hướng thủ tục để giải quyết bài toán: • Quan tâm đến các chức năng (thủ tục) cần thực hiện. • Chương trình lớn sẽ đượ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. Các chức năng: Nạp tiền, rút tiền, chuyển khoản 6
- Bài toán ví dụ • Các vấn đề đối với lập trình hướng thủ tục: • Quản lý quá nhiều chức năng. • Quản lý dữ liệu quá phức tạp. • Khó mở rộng chức năng và sử dụng lại module đã viết. Lập trình hướng đối tượng 7
- Bài toán ví dụ • Lập trình hướng đối tượng để giải quyết bài toán: • Chương trình được chia thành các đối tượng (Object). • Mỗi Object sẽ có dữ liệu riêng và các chức năng tương ứng. • Các Object trao đổi thông tin với nhau thông qua các phương thức (chức năng). Các đối tượng: Khách hàng, Tiền, Tài khoản 8
- Lập trình hướng đối tượng • Lập trình hướng đối tượng (Object-Oriented Programming - OOP): • Là một mô hình lập trình mà thế giới thực sẽ được mô tả thành một tập các đối tượng (Object) có thể giao tiếp được với nhau. • Mỗi Object sẽ có những thuộc tính (Attribute/Field) và hành vi (Method) tương ứng. • Tập hợp các đối tượng giống nhau sẽ được nhóm thành một lớp (Class). Mỗi đối tượng cụ thể của một lớp được gọi là một thực thể (Instance). 9
- Object • Object biểu diễn một đối tượng trong thế giới thực. • Object là đơn vị cơ bản trong OOP. • • Họ tên Địa chỉ Thuộc • Các Object được đặc trưng tính • • Số CMND Số TK bởi các thuộc tính và phương • … thức. • Thuộc tính (Attribute/Field) là dữ liệu lưu trữ các giá trị • • Nạp tiền Rút tiền Phương đặc trưng của Object. thức • • Chuyển tiền Gửi tiết kiệm • Phương thức (Method) là các • … thao tác tác động lên dữ liệu để thực hiện hành vi của Object. 10
- Class • Class là khuôn mẫu (Prototype) Class dùng để định nghĩa các Attribute KhachHang và Method chung của tất cả những Object cùng loại. • Class thực chất là một kiểu dữ liệu do người dùng định nghĩa chứa cả dữ liệu (Attribute) và các hàm Objects chức năng (Method) của các Object thuộc Class đó. • Mỗi Object là một thực thể của một Class. 11
- CÁC ĐẶC ĐIỂM CỦA OOP
- Các đặc điểm của OOP • Tính đóng gói (Encapsulation) • Tính kế thừa (Inheritance) • Tính đa hình (Polymorphism) 13
- Tính đóng gói • Tính đóng gói (Encapsulation): • Giúp đảm bảo tính toàn vẹn của đối tượng bằng việc không cho phép người sử dụng trực tiếp thay đổi giá trị các thuộc tính được bảo vệ của đối tượng mà phải thông qua các phương thức/thuộc tính của đối tượng đó. 14
- Tính đóng gói • Thuộc tính truy cập (access modifier): • Public: các thành phần có thể được truy cập từ bên ngoài lớp. • Private: các thành phần chỉ được truy cập bên trong lớp. • Protected: các thành phần có thể được truy xuất bên trong lớp và các lớp con (kế thừa) của lớp. Modifier Class SubClass Global Public ✓ ✓ ✓ Protected ✓ ✓ Private ✓ 15
- Properties • Ví dụ: class Time { private int seconds; } • Nhu cầu: Bên ngoài lớp có thể truy cập giá trị seconds. 16
- Properties • Giải pháp “cổ điển”: Tạo method trả về giá trị second và method gán giá trị cho second. class Time { private int seconds; public int GetSeconds() { return seconds; } public void SetSeconds(int seconds) { this.seconds = seconds; if (this.seconds < 0) this.seconds = 0; } } 17
- Properties • Nhận xét: • Nhu cầu dùng method get và set cực kỳ nhiều. • Cách viết trên có một chút “cồng kềnh”. class Program { public static void Main() { Time time = new Time(); int x = time.GetSeconds(); time.SetSeconds(90); } } 18
- Properties • Một cách cực kỳ “thuận lợi” nhưng không ai dùng class Time { public int seconds; } class Program { public static void Main() { Time time = new Time(); int s = time.seconds; time.seconds = 90; } } • C# cung cấp 1 giải pháp cho vấn đề này là Property 19
- Properties class Time • Nội dung của get và set { private int seconds; giống hàm GetSeconds và SetSeconds. public int Seconds { get { • Hàm SetSeconds có return seconds; tham số còn set không } có tham số mà dùng từ set { khóa value đại diện cho this.seconds = value; giá trị gán cho property. if (this.seconds < 0) this.seconds = 0; } } } 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 5 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 9 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 12 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Tập tin - ThS. Đặng Bình Phương
48 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p | 0 | 0
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn