Bài giảng Lập trình hướng đối tượng: Chương 11 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM
lượt xem 3
download
Bài giảng Lập trình hướng đối tượng: Chương 11 Indexer, cung cấp cho người đọc những kiến thức như: Đặt vấn đề; Indexer; Cách dùng khác của Indexer; Ý nghĩa của indexer;...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 Lập trình hướng đối tượng: Chương 11 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM
- CHƯƠNG 11: Click to edit Master subtitle style INDEXERS Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM 1
- NỘI DUNG Đặt vấn đề Indexer Cách dùng khác của Indexer Ý nghĩa của indexer Tóm tắt 2
- ĐẶT VẤN ĐỀ
- Đặt vấn đề Để truy xuất một đối tượng thuộc 1 class, ta dùng biến đối tượng. Thông qua biến đối tượng, ta truy xuất từng thành phần (thuộc tính). Cú pháp: Tên biến đối tượng.tên thành phần Ví dụ: Book b = new Book (); string tenSach = b.TenSach; 4
- Đặt vấn đề Nhưng, đôi khi ta muốn truy xuất một tập hợp (collection) nằm trong 1 class ? Ví dụ: tạo 1 class quản lý sách (lớp Book) bao gồm: mã sách, tên sách, các chương của sách; biết 1 cuốn sách có nhiều chương. Ta muốn truy xuất tập hợp các chương của 1 lớp Book? 5
- Đặt vấn đề class Book { public string MaSach { get; set; } Tạo mảng kiểu public string TenSach { get; set; } string chứa tên các string[] chuong; chương của sách get public string GetChapter(int i) { return chuong[i]; } set public void SetChapter(int i, string str) { chuong[i] = str; } Phương thức public Book(int soChuong) khởi tạo { chuong = new string[soChuong]; } } 6
- Đặt vấn đề Book book = new Book(10); book.MaSach = "01_TH"; book.TenSach = "Lap Trinh Huong Doi Tuong"; book.SetChapter(0, "Gioi Thieu"); book.SetChapter(1, "Lop va Doi Tuong"); Lấy nội dung chương ... 1 của lớp Book string noiDung = book.GetChapter(1); Có thể viết lại ???? INDEXER Book book = new Book(10); book.MaSach = "01_TH"; book.TenSach = "Lap Trinh Huong Doi Tuong"; Sử dụng indexer để book[0]= "Gioi Thieu"; ghi (write) book[1]= "Lop va Doi Tuong"; ... Console.WriteLine(“In cac chuong cua sach”); Sử dụng indexer để for(int i=0;i
- INDEXER
- Indexer Indexer là chức năng được C# hỗ trợ để người dùng có thể truy xuất những tập hợp (collection như: mảng, danh sách,…) nằm trong lòng 1 lớp. Indexer chính là cách overload phép toán chỉ mục ([ và ]) 9
- Indexer Cú pháp: [scope] [attribute] type this [int index] {[getdef] [setdef]}; Ví dụ class Book { ... string[] chuong; public string this [int index] { . . .} } scope type: loại từ khoá: this tham số get, set dữ liệu accessors được đánh chỉ mục 10
- Indexer Ví dụ class Book { public string MaSach { get; set; } public string TenSach { get; set; } string[] chuong; public string this[int index] { get { read return chuong[index]; } Cách sử dụng set { write chuong[i] = value; } } Book book = new Book(10); public Book(int soChuong) book.MaSach = "01_TH"; { book.TenSach = "Lap Trinh Huong Doi Tuong"; chuong = new string[soChuong]; book[0]= "Gioi Thieu"; } book[1]= "Lop va Doi Tuong"; } ... Console.WriteLine(“In cac chuong cua sach”); for(int i=0;i
- Indexer Các thành phần của indexer Bắt đầu là public (không phải public và static) Kiểu của giá trị trả về Từ khóa this[ ] chỉ index Trong [] là danh sách chỉ mục Giống properties: có get và set Không cần phải có cả hai. Trong get/set dùng biến index Trong set dùng biến value để lấy giá trị được gán 12
- CÁCH DÙNG KHÁC CỦA INDEXER
- Cách dùng khác của Indexer class Chuong { private string tenChuong; private string noiDung; public string TenChuong { get{return tenChuong;} set{tenChuong= value;} } public string NoiDung { get { return noiDung; } set { noiDung = value; } } public Chuong(string ten, string noiDungChuong) { tenChuong = ten; noiDung = noiDungChuong; } } 14
- Cách dùng khác của Indexer class Sach { public string TenSach { get; set; } private Chuong[] dsChuong; public Sach(int soChuong) { dsChuong = new Chuong[soChuong]; } public Chuong this[int index] { Cách sử dụng get { return dsChuong[index]; } set { dsChuong[index] = value; } } public Chuong this[string tenChuong] { Book book = new Book(10); get book.TenSach = "Lap Trinh Huong Doi Tuong"; { book[0]= new Chuong("Gioi Thieu“,”LTHDT là foreach (Chuong c in dsChuong) ….”); { book[1]= new Chuong("Lop va Doi Tuong“, “Lop if (c.TenChuong == tenChuong) la ….”; { book[2] = new Chuong(“Phuong thuc”, “Dinh return c; nghia phuong thuc ….”) } ... } Console.WriteLine(“In noi dung chuong Lop va return null; Doi tuong cua sach:”); } Console.WriteLine(book[“Lop va Doi } Tuong”].NoiDung); } 15
- Cách dùng khác của Indexer Indexer có tham số là string có cú pháp như sau: class Book { ... Chuong[] dsChuong; public Chuong this [string component] { . . .} } scope type: loại tham số get, set từ khoá: this dữ liệu accessors được đánh chỉ mục 16
- Indexer có nhiều tham số public type this[string component, int index] { get { } set { } } 17
- Ý NGHĨA CỦA INDEXER
- Ý nghĩa của Indexer Indexer được sử dụng giúp code dễ đọc và tự nhiên hơn Chỉ nên dùng indexer và operator overloading khi việc dùng này làm code dễ đọc. Indexer có thể có bất kỳ kiểu tham số nào 19
- Tóm tắt Indexer là cách overload phép toán chỉ mục ([ và ]) Định nghĩa indexer vừa giống operator overloading vừa giống property public type this[int index] { get{…} set{…} } Indexer có thể có bất kỳ kiểu tham số nào Indexer có thể có nhiều tham số. 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
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 | 174 | 12
-
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 | 140 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
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 | 80 | 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 | 120 | 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 | 103 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 88 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
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 | 100 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
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 | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 104 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 139 | 4
-
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 | 11 | 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 | 16 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
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