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
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
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;iINDEXER 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;iIndexer 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 { dsCh ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Cách dùng khác của Indexer Ý nghĩa của Indexer Operator overloadingGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 82 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 70 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 52 0 0 -
Đề cương môn học Lập trình Java
28 trang 50 0 0 -
Cấu trúc dữ liệu và Ngôn ngữ lập trình C
261 trang 45 0 0 -
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 trang 41 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 1 - Trần Thị Minh Châu, Nguyễn Việt Hà
150 trang 41 0 0 -
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 1
40 trang 36 0 0 -
Bài giảng Lập trình Java cơ bản: Chương 3 - GV. Võ Hoàng Phương Dung
55 trang 33 0 0 -
CHƯƠNG 14: CÁC CẤU TRÚC DỮ LIỆU ĐA CHIỀU
22 trang 33 0 0 -
102 trang 31 0 0
-
Phân tích thiết kế hướng đối tượng (phần 3)
4 trang 30 0 0 -
Bài thuyết trình Tổng quan về lập trình hướng đối tượng
21 trang 30 0 0