Bài giảng Lập trình hướng đối tượng: Giao diện
Số trang: 21
Loại file: pdf
Dung lượng: 478.11 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hướng đối tượng: Giao diện" cung cấp cho người học các kiến thức: Giới thiệu giao diện (Interface), cài đặt một số giao diện chuẩn. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứ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: Giao diện Giao diện v 2.2 - 11/2017Lê Viết Mẫn - lvman@hce.edu.vn 1 Giao diệnNội dung 1. Giới thiệu Giao diện (Interface) 2. Cài đặt một số giao diện chuẩn Lê Viết Mẫn - lvman@hce.edu.vn 2 Giao diện Giao diệnLê Viết Mẫn - lvman@hce.edu.vn 3 Giao diệnInterface - giao diện• Giao diện là một lớp trừu tượng không có cài đặt • Giao diện được cài đặt thông qua các lớp khác • Các cài đặt có thể được thay đổi mà không cần những thay đổi của đối tượng sử dụng• Ví dụ : Một chương trình xử lý văn bản hiển thị cửa sổ của nó sử dụng một giao diện cửa sổ mà nó được cài đặt khác nhau cho Windows 95 và Mac OS Text Lê Viết Mẫn - lvman@hce.edu.vn 4 Giao diệnGiao diện • Là một tập các thành phần trừu tượng • Giao diện cung cấp các hành vi mà một lớp hoặc cấu trúc nào đó lựa chọn để hỗ trợ • Lớp không bị hạn chế về số lượng giao diện mà nó hỗ trợ Giao diện Lớp trừu tượng Tất cả các thành phần đều là trừu Có thể định nghĩa một số thành phần tượng trừu tượng Giao diện không phụ thuộc vào cây Chỉ những lớp phái sinh mới nạp phân cấp → có thể được thừa kế từ chồng được các thành phần trừu bất kỳ lớp nào tượng → phải thuộc cây phân cấp Cho phép chỉ hỗ trợ cho vài lớp cần Tất cả các lớp phái sinh phải nạp thiết trong cây phân cấp. Ví dụ : chồng các thành phần trừu tượng HavingPoints cho kiểu Hexagon Lê Viết Mẫn - lvman@hce.edu.vn 5 Giao diệnĐịnh nghĩa Giao diện • Sử dụng từ khoá interface, tên giao diện bắt đầu bằng chữ I • Không xác định lớp cơ sở (kể cả System.Object) • Các thành phần cũng không xác định khả năng truy xuất, mặc định là public và abstract • Không có biến thành phần và cấu tử • Không cài đặt cho hàm thành phần • Có thể định nghĩa các nguyên mẫu thuộc tính public interface IPointy { byte GetNumberOfPoints(); } public interface IPointy { byte Points { get; } } Lê Viết Mẫn - lvman@hce.edu.vn 6 Giao diệnCài đặt một giao diện • Cài đặt một giao diện cho một lớp sử dụng cú pháp thừa kế • Lớp cơ sở phải được đứng trước class Pencil : IPointy {...} class SwitchBlade : object, IPointy {...} class Fork : Utensil, IPointy {...} struct Arrow : ICloneable, IPointy {...} • Bắt buộc phải nạp chồng toàn bộ các thành phần của giao diện class Hexagon : Shape, IPointy { ... //cài đặt IPointy public byte Points { get { return 6; } } } Lê Viết Mẫn - lvman@hce.edu.vn 7 Giao diệnSử dụng Giao diện • Không thể cấp phát bộ nhớ cho kiểu giao diện IPointy p = new IPointy(); // Error • Truy xuất các thành phần của giao diện thông qua lớp Hexagon hex = new Hexagon(“hex”); Console.WriteLine(hex.Points); • Sử dụng toán tử as và is để kiểm tra một lớp có cài đặt giao diện hay không Shape[] myShapes = {new Hexagon(), new Circle(), new Triangle(), new Circle()}; foreach (Shape s in myShapes) if (s is IPointy) Console.WriteLine(((IPointy)s).Points); • Giao diện làm đối số của các hàm private static void PointMe(IPointy p) { Console.WriteLine(p.Points); } Lê Viết Mẫn - lvman@hce.edu.vn 8 Giao diệnSử dụng Giao diện • Giao diện là kiểu trả về static IPointy FindFirstPointyShape(Shape[] shapes) { foreach (Shape s in shapes) if (s is IPointy) return s as IPointy; return null; } • Sử dụng cú pháp tường minh để tránh xung đột về tên public interface IDrawForm { void Draw(); } public interface IDrawToMemory { void Draw(); } class Octagan : IDrawToForm, IDrawToMemory { void IDrawToForm.Draw() {...} void IDrawToMemory.Draw() {...} ...
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: Giao diện Giao diện v 2.2 - 11/2017Lê Viết Mẫn - lvman@hce.edu.vn 1 Giao diệnNội dung 1. Giới thiệu Giao diện (Interface) 2. Cài đặt một số giao diện chuẩn Lê Viết Mẫn - lvman@hce.edu.vn 2 Giao diện Giao diệnLê Viết Mẫn - lvman@hce.edu.vn 3 Giao diệnInterface - giao diện• Giao diện là một lớp trừu tượng không có cài đặt • Giao diện được cài đặt thông qua các lớp khác • Các cài đặt có thể được thay đổi mà không cần những thay đổi của đối tượng sử dụng• Ví dụ : Một chương trình xử lý văn bản hiển thị cửa sổ của nó sử dụng một giao diện cửa sổ mà nó được cài đặt khác nhau cho Windows 95 và Mac OS Text Lê Viết Mẫn - lvman@hce.edu.vn 4 Giao diệnGiao diện • Là một tập các thành phần trừu tượng • Giao diện cung cấp các hành vi mà một lớp hoặc cấu trúc nào đó lựa chọn để hỗ trợ • Lớp không bị hạn chế về số lượng giao diện mà nó hỗ trợ Giao diện Lớp trừu tượng Tất cả các thành phần đều là trừu Có thể định nghĩa một số thành phần tượng trừu tượng Giao diện không phụ thuộc vào cây Chỉ những lớp phái sinh mới nạp phân cấp → có thể được thừa kế từ chồng được các thành phần trừu bất kỳ lớp nào tượng → phải thuộc cây phân cấp Cho phép chỉ hỗ trợ cho vài lớp cần Tất cả các lớp phái sinh phải nạp thiết trong cây phân cấp. Ví dụ : chồng các thành phần trừu tượng HavingPoints cho kiểu Hexagon Lê Viết Mẫn - lvman@hce.edu.vn 5 Giao diệnĐịnh nghĩa Giao diện • Sử dụng từ khoá interface, tên giao diện bắt đầu bằng chữ I • Không xác định lớp cơ sở (kể cả System.Object) • Các thành phần cũng không xác định khả năng truy xuất, mặc định là public và abstract • Không có biến thành phần và cấu tử • Không cài đặt cho hàm thành phần • Có thể định nghĩa các nguyên mẫu thuộc tính public interface IPointy { byte GetNumberOfPoints(); } public interface IPointy { byte Points { get; } } Lê Viết Mẫn - lvman@hce.edu.vn 6 Giao diệnCài đặt một giao diện • Cài đặt một giao diện cho một lớp sử dụng cú pháp thừa kế • Lớp cơ sở phải được đứng trước class Pencil : IPointy {...} class SwitchBlade : object, IPointy {...} class Fork : Utensil, IPointy {...} struct Arrow : ICloneable, IPointy {...} • Bắt buộc phải nạp chồng toàn bộ các thành phần của giao diện class Hexagon : Shape, IPointy { ... //cài đặt IPointy public byte Points { get { return 6; } } } Lê Viết Mẫn - lvman@hce.edu.vn 7 Giao diệnSử dụng Giao diện • Không thể cấp phát bộ nhớ cho kiểu giao diện IPointy p = new IPointy(); // Error • Truy xuất các thành phần của giao diện thông qua lớp Hexagon hex = new Hexagon(“hex”); Console.WriteLine(hex.Points); • Sử dụng toán tử as và is để kiểm tra một lớp có cài đặt giao diện hay không Shape[] myShapes = {new Hexagon(), new Circle(), new Triangle(), new Circle()}; foreach (Shape s in myShapes) if (s is IPointy) Console.WriteLine(((IPointy)s).Points); • Giao diện làm đối số của các hàm private static void PointMe(IPointy p) { Console.WriteLine(p.Points); } Lê Viết Mẫn - lvman@hce.edu.vn 8 Giao diệnSử dụng Giao diện • Giao diện là kiểu trả về static IPointy FindFirstPointyShape(Shape[] shapes) { foreach (Shape s in shapes) if (s is IPointy) return s as IPointy; return null; } • Sử dụng cú pháp tường minh để tránh xung đột về tên public interface IDrawForm { void Draw(); } public interface IDrawToMemory { void Draw(); } class Octagan : IDrawToForm, IDrawToMemory { void IDrawToForm.Draw() {...} void IDrawToMemory.Draw() {...} ...
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 Kỹ thuật lập trình Lập trình giao diện Giao diện chuẩn Cài đặt giao diệnTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 316 0 0 -
101 trang 211 1 0
-
14 trang 141 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 129 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 104 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 103 0 0 -
265 trang 93 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 86 0 0 -
33 trang 75 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 58 0 0