Bài giảng Lập trình hướng đối tượng: Lớp và đối tượng - Lê Viết Mẫn
lượt xem 2
download
Bài giảng "Lập trình hướng đối tượng: Lớp và đối tượng" cung cấp cho người học các kiến thức: Primitives vs Objects, lập trình hướng đối tượng, lớp và đối tượng, một số vấn đề khác. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Lớp và đối tượng - Lê Viết Mẫn
- Lớp và đối tượng v 3.0 - 09/2018 Lê Viết Mẫn - lvman@hce.edu.vn 1 Lớp và đối tượng
- chúng ta đã học... Programs = Data Structure + Algorithms Cấu trúc chương trình Tuần tự Rẽ nhánh Lặp Hàm Tổ chức dữ liệu Kiểu dữ liệu bool char short int long float double string array Lê Viết Mẫn - lvman@hce.edu.vn 2 Lớp và đối tượng
- chúng ta sẽ học... Programs = Object-Oriented Programming Cấu trúc chương trình Tuần tự Rẽ nhánh Lặp Hàm Tổ chức dữ liệu Kiểu dữ liệu bool char short int long float double string array class Lê Viết Mẫn - lvman@hce.edu.vn 3 Lớp và đối tượng
- cụ thể... Bank Account - nameCustomer : string - accountBalance : int = 0 chuyển mô hình thành code + deposit() + withdraw() sử dụng C# + transfer() Lê Viết Mẫn - lvman@hce.edu.vn 4 Lớp và đối tượng
- Nội dung 1. Primitives vs Objects 2. Lập trình Hướng đối tượng 3. Lớp và đối tượng 4. Một số vấn đề khác 4.1. Từ khoá this 4.2. Cấu tử 4.3. Các thành phần static 4.4. Thuộc tính, thuộc tính tự động 4.5. Biến thành phần chỉ đọc Lê Viết Mẫn - lvman@hce.edu.vn 5 Lớp và đối tượng
- Primitives vs Objects Lê Viết Mẫn - lvman@hce.edu.vn 6 Lớp và đối tượng
- Primitive data • Dạng dữ liệu cơ bản nhất, được lưu trữ trực tiếp trong bộ nhớ bool sbyte byte float char short ushort double int uint decimal long ulong • Thuộc vào kiểu trị int x = 17; x 17 “value semantics” int y = x; y 17 stack • Toán tử: +, -, /, * • Toán tử kết hợp: ++, --, +=, *= Lê Viết Mẫn - lvman@hce.edu.vn 7 Lớp và đối tượng
- Object data • Cách lưu trữ nhiều dữ liệu và các xử lý cho dữ liệu đó trong cùng một thành phần string Array List • Thuộc vào kiểu tham chiếu “reference semantics” 0 1 2 int[] x = new int[3]; x 0x0a10 0 0 0 int[] y = x; y 0x0a10 stack heap • Hàm/Phương thức “hello”.Equals(“world”) [1, 2, 3].Reverse() Lê Viết Mẫn - lvman@hce.edu.vn 8 Lớp và đối tượng
- null • Có nghĩa là “no object” • “giá trị 0” cho các object string[] strArr = new string[5]; 0 1 2 3 4 strArr 0x0a1b null null null null null stack heap • NullReferenceException strArr[0].Length • “” là không phải null “”.Length // trả ra 0 Lê Viết Mẫn - lvman@hce.edu.vn 9 Lớp và đối tượng
- Lập trình Hướng đối tượng Lê Viết Mẫn - lvman@hce.edu.vn 10 Lớp và đối tượng
- Lập trình Hướng đối tượng • Tất cả mọi thứ trong C# đều là đối tượng (object) và có kiểu (class) • Các đối tượng là sự trừu tượng hoá dữ liệu, chứa: • đặc tính (attribute) - nơi lưu trữ dữ liệu • phương thức (method), là giao diện cho phép tương tác với đối tượng, định nghĩa hành vi nhưng che dấu cài đặt • Có thể tạo các thể hiện (instance) của đối tượng “hello world” [1, 2, 3] 1234 true • Có thể huỷ/xoá các đối tượng Lê Viết Mẫn - lvman@hce.edu.vn 11 Lớp và đối tượng
- Định nghĩa lớp Lớp & đối tượng trong C# Định nghĩa lớp Sử dụng từ khoá class Định nghĩa một kiểu dữ liệu mới Đặc tính Các biến thành phần (gọi tắt là biến) Hành vi Phương thức / hàm Có hai loại hàm với hai cách triệu gọi khác nhau : • Hàm không tĩnh - Gọi từ đối tượng Bitmap bm = new Bitmap(20, 20); bm.Save("bitmap.png"); • Hàm tĩnh (từ khoá static) - Gọi từ lớp Console.Write("Please enter a number :"); Lê Viết Mẫn - lvman@hce.edu.vn 12 Lớp và đối tượng
- Định nghĩa lớp Sử dụng lớp Lớp & đối tượng trong C# Định nghĩa lớp Sử dụng từ khoá class Định nghĩa một kiểu dữ liệu mới Đặc tính Các biến thành phần (gọi tắt là biến) Hành vi Phương thức / hàm Có hai loại hàm với hai cách triệu gọi khác nhau : • Hàm không tĩnh - Gọi từ đối tượng Bitmap bm = new Bitmap(20, 20); bm.Save("bitmap.png"); • Hàm tĩnh (từ khoá static) - Gọi từ lớp Console.Write("Please enter a number :"); Tạo một đối tượng Khai báo một biến có kiểu dữ liệu nào đó và ghi dữ của một lớp liệu vào biến đó Sử dụng từ khoá new Bitmap bm = new Bitmap(20, 20); Lê Viết Mẫn - lvman@hce.edu.vn 13 Lớp và đối tượng
- Hai mặt của lớp • Thiết kế lớp (người lập trình lớp) • Cài đặt một lớp tốt nhất có thể mà không lo lắng về cách nó sẽ được sử dụng • Cung cấp dữ liệu thích hợp • Cung cấp các hàm thích hợp • Cung cấp các đặc tính tổng quát cho các lớp chung, đặc tính riêng biệt cho các lớp chuyên biệt • Sử dụng lớp (người lập trình ứng dụng) • Tập trung vào các giao diện public • Lớp đó có thể làm gì, chứ không phải nó làm việc đó thế nào Lê Viết Mẫn - lvman@hce.edu.vn 14 Lớp và đối tượng
- Quy tắc thiết kế lớp • Nghĩ về từ “trách nhiệm” • Lớp có trách nhiệm gì trong việc duy trì dữ liệu này ? • Lớp có trách nhiệm gì trong việc thực hiện tính toán đó hay cung cấp dịch vụ đó (lớp nào nên định nghĩa hàm đó) ? • Cài đặt che dấu dữ liệu • Thông thường, dùng private cho dữ liệu • Thông thường, dùng public cho các hàm • Che dấu các hàm “trợ giúp” (dùng private) • Chỉ cho phép truy xuất dữ liệu thông qua các hàm public (những hàm này là giao diện public của lớp) Lê Viết Mẫn - lvman@hce.edu.vn 15 Lớp và đối tượng
- Giao diện public • Người sử dụng sử dụng một đối tượng mà không cần biết nó xử lý thế nào ở bên trong • Dữ liệu là không thấy được từ bên ngoài • Các thuật toán là cũng không thấy được từ bên ngoài • Chỉ có các đặc tính, giao diện public là đưa ra cho bên ngoài • Bao gồm các đặc tính không phải private • Thường là các hàm thành viên public • Giao diện public là con đường duy nhất để đạt đến sự đóng gói của đối tượng Lê Viết Mẫn - lvman@hce.edu.vn 16 Lớp và đối tượng
- Lớp và đối tượng Lê Viết Mẫn - lvman@hce.edu.vn 17 Lớp và đối tượng
- Lớp UML → Lớp C# • Tên lớp Person • ảo - name : string + height : int • Đặc tính (field) # weight : int • Biến thành phần -instance count : int = 0 • Thuộc tính (property) + Person() • Các biến cấp lớp + Person(name:string) • static • + payTaxes() : void Hành vi + catchBus(direction : int) : void • Cấu tử (constructor) + takeLongLunch() : bool • Huỷ tử (destructor) • Hàm thành phần (method) Lê Viết Mẫn - lvman@hce.edu.vn 18 Lớp và đối tượng
- Lớp UML → Lớp C# • Tên lớp Person • ảo - name : string + height : int • Đặc tính (field) # weight : int • Biến thành phần -instance count : int = 0 • Thuộc tính (property) + Person() • Các biến cấp lớp + Person(name:string) • static • + payTaxes() : void Hành vi + catchBus(direction : int) : void • Cấu tử (constructor) + takeLongLunch() : bool • Huỷ tử (destructor) • Hàm thành phần (method) Lê Viết Mẫn - lvman@hce.edu.vn 19 Lớp và đối tượng
- Lớp UML → Lớp C# • Tên lớp Person • ảo - name : string + height : int • Đặc tính (field) # weight : int • Biến thành phần -instance count : int = 0 • Thuộc tính (property) + Person() • Các biến cấp lớp + Person(name:string) • static • + payTaxes() : void Hành vi + catchBus(direction : int) : void • Cấu tử (constructor) + takeLongLunch() : bool • Huỷ tử (destructor) • Hàm thành phần (method) Lê Viết Mẫn - lvman@hce.edu.vn 20 Lớp và đối tượng
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p | 144 | 19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p | 176 | 15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 181 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 3: Kế thừa
18 p | 143 | 10
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 146 | 9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 86 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 125 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 108 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p | 150 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 202 | 7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 111 | 7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 70 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 103 | 5
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - GV. Hà Văn Sang
29 p | 93 | 5
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 18 | 4
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 110 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 21 | 3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p | 15 | 3
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