Danh mục

Giáo trình phân tích quy trình ứng dụng kỹ thuật nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p6

Số trang: 5      Loại file: pdf      Dung lượng: 904.65 KB      Lượt xem: 16      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu 'giáo trình phân tích quy trình ứng dụng kỹ thuật nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p6', tài chính - ngân hàng, kế toán - kiểm toán phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình phân tích quy trình ứng dụng kỹ thuật nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p6 . Ngôn Ngữ Lập Trình C# public class Fraction { public Fraction( int numerator, int denominator) { this.numerator = numerator; this.denominator = denominator; } public override string ToString() { StringBuilder s = new StringBuilder(); s.AppendFormat(“{0}/{1}”,numerator, denominator); return s.ToString(); } internal class FractionArtist { public void Draw( Fraction f) { Console.WriteLine(“Drawing the numerator {0}”, f.numerator); Console.WriteLine(“Drawing the denominator {0}”, f.denominator); } } // biến thành viên private private int numerator; private int denominator; } public class Tester { static void Main() { Fraction f1 = new Fraction( 3, 4); Console.WriteLine(“f1: {0}”, f1.ToString()); Fraction.FractionArtist fa = new Fraction.FractionArtist(); fa.Draw( f1 ); } } ----------------------------------------------------------------------------- Lớp Fraction trên nói chung là không có gì thay đổi ngoại trừ việc thêm một lớp lồng bên trong và lược đi một số phương thức không thích hợp trong ví dụ này. Lớp lồng bên trong 148 . Kế Thừa – Đa Hình . Ngôn Ngữ Lập Trình C# chỉ cung cấp một phương thức thành viên duy nhất, phương thức Draw(). Điều FractionArtist thú vị trong phương thức Draw() truy cập dữ liệu thành viên private là f.numerator và f.denominator. Hai viến thành viên private này sẽ không cho phép truy cập nếu FractionArtist không phải là lớp lồng bên trong của lớp Fraction. Lưu ý là trong hàm Main() khi khai báo một thể hiện của lớp lồng bên trong, chúng ta phải xác nhận tên của lớp bên ngoài, tức là lớp Fraction: Fraction.FractionArtist fa = new Fraction.FractionArtist(); Thậm chí khi lớp FractionArtist là public, thì phạm vị của lớp này vẫn nằm bên trong của lớp Fraction. Câu hỏi và trả lời Câu hỏi 1: Có cần thiết phải chỉ định từ khóa override trong phương thức phủ quyết của lớp dẫn xuất hay không? Trả lời 1: Có, chúng ta phải khai báo rõ ràng từ khóa override với phương thức phủ quyết phương thức ảo (của lớp cơ sở ) bên trong lớp dẫn xuất. Câu hỏi 2: Lớp trừu tượng là thế nào? Có thể tạo đối tượng cho lớp trừu tượng hay không? Trả lời 2: Lớp trừu tượng không có sự thực thi, các phương thức của nó được tạo ra chỉ là hình thức, tức là chỉ có khai báo, do vậy phần định nghĩa bắt buộc phải được thực hiện ở các lớp dẫn xuất từ lớp trừu tượng này. Do chỉ là lớp trừu tượng, không có sự thực thi nên chúng ta không thể tạo thể hiện hay tạo đối tượng cho lớp trừu tượng này. Câu hỏi 3: Có phải khi tạo một lớp thì phải kế thừa từ một lớp nào không? Trả lời 3: Không nhất thiết như vậy, tuy nhiên trong C#, thì tất cả các lớp được tạo điều phải dẫn xuất từ lớp Object. Cho dù chúng có được khai báo tường minh hay không. Do đó Object là lớp gốc của tất cả các lớp được xây dựng trong C#. Một điều thú vị là các kiểu dữ liệu giá trị như kiểu nguyên, thực, ký tự cũng được dẫn xuất từ Object. Câu hỏi 4: Lớp lồng bên trong một lớp là như thế nào? Trả lời 4: Lớp lồng bên trong một lớp hay còn gọi là lớp nội được khai báo với từ khóa internal, chứa bên trong phạm vi của một lớp. Lớp nội có thể truy cập được các thành viên private của lớp mà nó chứa bên trong Câu hỏi 5: Có thể kế thừa từ một lớp cơ sở được viết trong ngôn ngữ khác ngôn ngữ C#? Trả lời 5: Được, một trong những đặc tính của .NET là các lớp có thể kế thừa từ các lớp được viết từ ngôn ngữ khác. Do vậy, trong C# ta có thể kế thừa một lớp được viết từ ngôn ngữ khác của .NET. Và những ngôn ngữ khác cũng có thể kế thừa từ các lớp C# mà ta tạo ra. Câu hỏi thêm Câu hỏi 1: Sự đặt biệt hóa được sử dụng trong C# thông qua tính gì? Câu hỏi 2: Khái niệm đa hình là gì? Khi nào thì cần sử dụng tính đa hình? Câu hỏi 3: Hãy xây dựng cây phân cấp các lớp đối tượng sau: Xe_Toyota, Xe_Dream, Xe_Spacy, Xe_BMW, Xe_Fiat, Xe_DuLich, Xe_May, Xe? 149 . Kế Thừa – Đa Hình . Ngôn Ngữ Lập Trình C# Câu hỏi 4: Từ khóa new được sử dụng làm gì trong các lớp? Câu hỏi 5: Một phương thức ảo trong lớp cơ sở có nhất thiết phải được phủ quyết trong lớp dẫn xuất hay không? Câu hỏi 6: Lớp trừu tượ ...

Tài liệu được xem nhiều: