intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:97

21
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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!

Chủ đề:
Lưu

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

  1. 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)
  2. 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
  3. GIỚI THIỆU OOP
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. CÁC ĐẶC ĐIỂM CỦA OOP
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2