Bài giảng Phân tích & thiết kế phần mềm hướng đối tượng - Chương 3: Interface & Class trong C# cung cấp cho người học các kiến thức: Tổng quát về phát biểu class của C#, định nghĩa thuộc tính vật lý, định nghĩa tác vụ chức năng, định nghĩa toán tử chức năng, định nghĩa thuộc tính giao tiếp (luận lý),... Mời các bạn cùng tham khảo.
Chương Interface & Class C# 3.1 Tổng quát phát biểu class C# 3.2 Định nghĩa thuộc tính vật lý 3.3 Định nghĩa tác vụ chức 3.4 Định nghĩa toán tử chức 3.5 Định nghĩa thuộc tính giao tiếp (luận lý) 3.6 Định nghĩa ₫ối tượng ₫ại diện hàm (delegate) 3.7 Định nghĩa kiện (Event) 3.8 Định nghĩa phần tử quản lý danh sách (indexer) 3.9 Thành phần static thành phần không static 3.10 Lệnh ₫ịnh nghĩa class C# ₫iển hình 3.11 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.1 Tổng quát phát biểu class C# Ngôn ngữ C# (hay ngơn ngữ lập trình khác) cung cấp cho người lập trình nhiều phát biểu (statement) khác nhau, ₫ó phát biểu class ₫ể ₫ặc tả chi tiết thực loại ₫ối tượng cấu thành phần mềm phát biểu quan trọng Sau ₫ây template class C# : class MyClass : BaseClass, I1, I2, I3 { //₫ịnh nghĩa thuộc tính vật lý ₫ối tượng //₫ịnh nghĩa tác vụ chức năng, toán tử //₫ịnh nghĩa thuộc tính giao tiếp (luận lý) //₫ịnh nghĩa ₫ại diện hàm chức (delegate) //₫ịnh nghĩa kiện (event) //₫ịnh nghĩa indexer class //₫ịnh nghĩa tác vụ quản lý ₫ời sống ₫ối tượng } Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.1 Tổng quát phát biểu class C# Khi ₫ịnh nghĩa class mới, ta thừa kế tối ₫a class ₫ã có (₫ơn thừa kế), tên class có, phải nằm vị trí ₫ầu tiên sau dấu ngăn ":" Khi ₫ịnh nghĩa class, ta thực nhiều interface khác (₫a thực), danh sách có, phải nằm sau tên class cha Trong trường hợp nhiều interface có tác vụ (phân biệt chữ ký) class muốn thực chúng khác ta dùng tên dạng phân cấp : class MyClass : BaseClass, I1, I2, I3 { //hiện thực tác vụ chữ ký interface khác void I1.func1() {} void I2.func1() {} void I3.func1() {} Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Khoa Khoa học & Kỹ thuật Máy tính Chương : Interface & Class C# }Trường ĐH Bách Khoa Tp.HCM © 2010 Slide 3.2 Định nghĩa thuộc tính vật lý Mỗi thuộc tính vật lý ₫ối tượng biến liệu cụ thể Phát biểu ₫ịnh nghĩa thuộc tính vật lý ₫ặc tả thơng tin sau thuộc tính tương ứng : Tên nhận dạng Kiểu liệu Giá trị ban ₫ầu Tầm vực truy xuất Cú pháp ₫ơn giản ₫ể ₫ịnh nghĩa thuộc tính vật lý sau : [scope] type name [= value]; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.2 Định nghĩa thuộc tính vật lý thành phần scope miêu tả tầm vực truy xuất thuộc tính, chọn khả sau : public : thuộc tính ₫ược truy xuất ₫âu internal : thuộc tính ₫ược truy xuất ₫âu assembly chứa class protected : thuộc tính ₫ược truy xuất class hành class con, cháu protected internal : thuộc tính ₫ược truy xuất ₫âu assembly chứa class hay class con, cháu private : thuộc tính ₫ược truy xuất nội class hành thành phần scope không ₫ược miêu tả tường minh, thuộc tính có tầm vực internal Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.2 Định nghĩa thuộc tính vật lý Hệ thống ₫ối tượng máy tính Assembly class C2 A1 public i1; internal i2; C1 protected i3; protected internal i4; private i5; C3 C4 A2 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.2 Định nghĩa thuộc tính vật lý thành phần type thường tên kiểu liệu thuộc tính tương ứng, tên kiểu giá trị hay tên kiểu tham khảo thành phần name tên nhận dạng thuộc tính thành phần [= value] miêu tả biểu thức xác ₫ịnh trị ban ₫ầu thuộc tính thành phần nằm [] nhiệm ý (optional), có khơng Các thành phần khác bắt buộc phải có Thí dụ : private int dorong = 10; private int docao = 10; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.3 Định nghĩa tác vụ chức Mỗi tác vụ (operation) thực chức xác ₫ịnh, rõ ràng ₫ó mà bên ₫ối tượng (client) cần dùng Định nghĩa tác vụ gồm phần : ₫ịnh nghĩa interface sử dụng ₫ịnh nghĩa thuật giải chi tiết mà tác vụ thực (method) Lệnh ₫ịnh nghĩa tác vụ thường gồm phần sau : [scope | attribute] return_type name (arg_list) body scope miêu tả tầm vực truy xuất tác vụ : public, protected, internal, protected internal, private attribute miêu tả tính chất hoạt ₫ộng tác vụ : static, virtual, sealed, override, abstract, extern return_type tên kiểu giá trị mà tác vụ trả name tên tác vụ, arg_list danh sách từ tới n tham số hình thức cách dấu ',', ₫ịnh nghĩa tham số hình thức gần giống ₫ịnh nghĩa thuộc tính vật lý Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.4 Định nghĩa toán tử chức Mỗi toán tử (operator) thực phép toán xác ₫ịnh Toán tử trường hợp ₫ặc biệt tác vụ Định nghĩa toán tử gồm phần : ₫ịnh nghĩa interface sử dụng ₫ịnh nghĩa thuật giải chi tiết mà toán tử thực (method) Lệnh ₫ịnh nghĩa toán tử thường gồm phần sau : [scope] return_type operator name (arg_list) body scope miêu tả tầm vực truy xuất toán tử : public, static, extern return_type tên kiểu giá trị mà toán tử trả name tên toán tử : +,-,*,/, arg_list danh sách từ tới tham số hình thức cách dấu ',', ₫ịnh nghĩa tham số hình thức gần giống ₫ịnh nghĩa thuộc tính vật lý Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 3.5 Định nghĩa thuộc tính giao tiếp (luận lý) Mỗi thuộc tính giao tiếp (luận lý) chẳng qua hay tác vụ get/set (tham khảo/thiết lập) nội dung thuộc tính tương ứng Định nghĩa thuộc tính giao tiếp ₫ịnh nghĩa hay tác vụ get/set Lệnh ₫ịnh nghĩa thuộc tính thường có dạng sau : [scope | attribute] type name {[getdef] [setdef]}; scope, attirbute, type, name có ý nghĩa giống lệnh ₫ịnh nghĩa tác vụ getdef setdef lệnh ₫ịnh nghĩa tác vụ get set thuộc tính tương ứng class Rectangle { private int m_cao; //thuộc tính vật lý public int Cao { //thuộc tính luận lý get { return m_cao; } set { if (value>0 && value = 100) { return 0; } else { return arr[index]; } } set { if (!(index < || index >= 100)) { arr[index] = value; } } } } Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 14 3.8 Định nghĩa phần tử quản lý danh sách (indexer) Để truy xuất phần tử thứ i danh sách, ta dùng cú pháp giống truy xuất biến array Rectangle objRec = new Rectangle(); objRec[0] = 0; int ret = objRec[10]; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 15 3.9 Thành phần static thành phần không static Phát biểu class ₫ược dùng ₫ể ₫ặc tả ₫ối tượng loại mà phần mềm dùng Về nguyên tắc, ₫ối tượng ₫ược tạo (bằng lệnh new), chứa tất thành phần ₫ược ₫ặc tả class tương ứng Tuy nhiên, xét chi li VC# cho phép ₫ặc tả loại thành phần class sau : Thành phần static : thành phần có từ khóa static lệnh ₫ịnh nghĩa Đây thành phần kết hợp với class, khơng ₫ược nhân cho ₫ối tượng ₫ối tượng truy xuất Cách ₫ể truy xuất thành phần static thông qua tên class //Console tên class chứa hàm truy xuất //các thiết bị nhập/xuất chuẩn Console.Writeln("Nội dung cần hiển thị"); Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 16 3.9 Thành phần static thành phần không static Thành phần không static : thành phần khơng dùng từ khóa static lệnh ₫ịnh nghĩa Đây thành phần kết hợp với ₫ối tượng, ₫ược nhân cho ₫ối tượng Ta truy xuất thành phần không static thông qua tham khảo ₫ối tượng class Rectangle { private int m_cao; //thuộc tính vật lý public int Cao { //thuộc tính luận lý get { return m_cao; } set { if (value>0 && value = 100) { return 0; } else { return arr[index]; } } set { if (!(index < || index >= 100)) { arr[index] = value; } } } }; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 22 Lệnh ₫ịnh nghĩa inreface C# ₫iển hình interface IMyInterface { //2 ₫ịnh nghĩa tác vụ & toán tử chức void button1_Click(object sender, System.EventArgs e); //4 ₫ịnh nghĩa kiện Click ₫ược xử lý delegate EventHandler event EventHandler Click; //5 ₫ịnh nghĩa thuộc tính luận lý x int x {get; set;} //7 ₫ịnh nghĩa indexer int this[int index] {get; set;} } Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 23 3.11 Kết chương Chương ₫ã giới thiệu cú pháp phát biểu class C# ₫ược dùng ₫ể ₫ặc tả chi tiết thực loại ₫ối tượng ₫ược dùng chương trình Chương ₫ã giới thiệu cú pháp phát biểu ₫ể ₫ịnh nghĩa thành phần cấu thành ₫ối tượng thuộc tính vật lý, thuộc tính giao tiếp, tác vụ chức năng, toán tử, delegate, event, indexer Chương ₫ã phân biệt loại thành phần ₫ược ₫ặc tả class : thành phần dùng chung (static) thành phần nhân theo ₫ối tượng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 24 ... Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 23 3.11 Kết chương Chương ₫ã giới... [setdef]}; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 13 3.8 Định nghĩa phần tử quản lý... : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Interface & Class C# Slide 15 3. 9 Thành phần static thành phần không static Phát biểu class ₫ược dùng ₫ể ₫ặc tả ₫ối tượng loại mà phần