Chương Hiện thực mơ hình hướng ₫ối tượng C# ne C om 3.0 Dẫn nhập 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 Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide Si 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, tố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 nh Vi 3.0 Dẫn nhập en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone.com Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide https://fb.com/sinhvienzonevn 3.1 Tổng quát phát biểu class C# ne C om 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 } Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Si 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() {} }Khoa Khoa học & Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phần mềm nh Vi 3.1 Tổng quát phát biểu class C# Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone.com Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide https://fb.com/sinhvienzonevn 3.2 Định nghĩa thuộc tính vật lý ne C 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]; om Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 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 Si nh Vi 3.2 Đị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 SinhVienZone.com Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide https://fb.com/sinhvienzonevn 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 C3 C4 C A1 om public i1; internal i2; C1 protected i3; protected internal i4; private i5; ne A2 Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Si 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; nh Vi 3.2 Đị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 SinhVienZone.com Mơn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide https://fb.com/sinhvienzonevn 3.3 Định nghĩa tác vụ chức ne C om 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ý Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 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ý Si nh Vi 3.4 Định nghĩa toán tử chức Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone.com Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide 10 https://fb.com/sinhvienzonevn 3.5 Định nghĩa thuộc tính giao tiếp (luận lý) ne C om 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; } } } } Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mô hình hướng ₫ối tượng C# Slide 15 en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Để 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]; Si nh Vi 3.8 Định nghĩa phần tử quản lý danh sách (indexer) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone.com Mơn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide 16 https://fb.com/sinhvienzonevn 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 khơng thể 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ị"); ne C om Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mô hình hướng ₫ối tượng C# Slide 17 en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Vi 3.9 Thành phần static thành phần không static Si nh 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 SinhVienZone.com Mơn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide 24 https://fb.com/sinhvienzonevn Lệnh ₫ịnh nghĩa inreface C# ₫iển hình ne C om 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;} } Môn : Nhập môn Công nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide 25 en Zo Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Si 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 nh Vi 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 SinhVienZone.com Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Hiện thực mơ hình hướng ₫ối tượng C# Slide 26 https://fb.com/sinhvienzonevn ... Khoa h c & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone. com Môn : Nhập môn C ng nghệ phần mềm Chương : Hiện th c mơ hình hướng ₫ối tượng C# Slide 16 https://fb .com/ sinhvienzonevn... Khoa h c & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone. com Môn : Nhập môn C ng nghệ phần mềm Chương : Hiện th c mơ hình hướng ₫ối tượng C# Slide 24 https://fb .com/ sinhvienzonevn... new Rectangle(); r.Cao = 10; Khoa Khoa h c & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 SinhVienZone. com Môn : Nhập môn C ng nghệ phần mềm Chương : Hiện th c mơ hình hướng ₫ối tượng C#