Chapter 9 – Object­Based Programming1 Outline Introduction Implementing a Time Abstract Data Type with a Class Class Scope Controlling Access to Members Initializing Class Objects: Constructors Using Overloaded Constructors Properties Composition: Objects as Instance Variables of Other Classes Using the this Reference Garbage Collection static Class Members const and readonly Members Indexers Data Abstraction and Information Hiding Software Reusability Namespaces and Assemblies Class View and Object Browser Interface Giới Thiệu 2 • Class và Object • Object­Oriented Programming (OOP). • Abstraction – Trừu Tượng • Encapsulation – Đóng Gói • Inheritance – Kế Thừa • Polymorphism– Đa Hình Class and Object (Lớp và đối tượng) 3 • Class (Lớp) thực chất là một kiểu dữ liệu được định nghĩa trong chương trình. • Class đặc trưng cho một mẫu, những nét chung nhất của một vài đối tượng và mô tả cấu trúc bên trong của những đối tượng này. • Thể hiện (instance) của một lớp được gọi là những đối tượng (object). Những đối tượng này được tạo trong bộ nhớ khi chương trình được thực hiện. • Những đối tượng của cùng một class có cùng định nghĩa về các thao tác và cấu trúc dữ liệu của chúng Class and Object (Lớp và đối tượng) 4 ClassName - Properties + Methods Class and Object 5 • Class : là một khái niệm trừu tượng (Abstraction) • Object: là một đối tượng thật • Ví Dụ: Ca sĩĩ là 1 class Cẩm Ly là mộttca sĩĩ (Object) Thờiigian là 1 class Giờ vào lớp là thờii gian (Object) Giờ ra chơii là thờiigian (Object) Class and Object 6 Class CaSi Property Class Time Property SoBaiHat KieuToc GiongHat Method Sub DonCa Sub TrinhDien Function KyTenLuuNiem Event KhatNuoc Giờ Phút Giây Method SetTime UniversalString ToString Event … Class and Object (Lớp và đối tượng) 7 System Console Propertes + Write(…) + Writeline(…) System.Window.Form MessageBox Propertes + Show(…) + … + ReadLine() + … Math - PI - E + Pow(…) + Sqrt(…) + Sin(…) +… Form - Text - Name … + Close() + Hide() + Show() + … Giới Thiệu 8 • Object­Oriented Programming (OOP). • Abstraction – Trừu Tượng • Encapsulation – Đóng Gói • Inheritance – Kế Thừa • Polymorphism– Đa Hình Object­Oriented Programming (OOP) 9 ­ Abstraction • Mô hình của một đối tượng được xác định qua: – Đặc điểm (Characteristics) Thuộc tính (properties) – Hành vi (Behaviors) Phương thức (methods) Abstraction Reality Object-Oriented Programming OOP Terminology­Encapsulation 10 • Sự kết hợp của các đặc điểm cùng với các hành vi của một đối tượng được gọi là một gói (package). • Data hiding – Thuộc tính và các thủ tục bị ẩn. – Người lập trình điều khiển các thuộc tính và các phương thức có sẵn tới các đối tượng khác. – Khai báo là private OOP Terminology­Inheritance 11 • Có khả năng tạo ra một lớp mới từ lớp đã tồn tại. • Lớp tồn tại (original – lớp gốc) được gọi là lớp cơ sở (base), superclass, hay lớp cha (parent) • Lớp được thừa kế được gọi là lớp được chuyển giao (derived), subclass, hay lớp con (child) • Lớp con có một quan hệ “is a” với lớp cha của nó. OOP Terminology­Inheritance 12 namespace OOP { public partiallclass frmOOP_Programing ::Form { ...... OOP Terminology­Inheritance 13 • Sự thừa kế (Inheritance) hỗ trợ khả năng tái sử dụng (reusability) • Reusability – tạo ra một hàm của một đối tượng và hàm này có thể được sử dụng cho nhiều projects OOP Terminology ­ Polymorphism 14 • Là những phương thức (Methods) có cùng tên nhưng thực hiện những công việc khác nhau. • Phương thức Select thì khác nhau cho các đối tượng như radio buttons, check boxes, và list boxes • Cho phép một lớp có một hay nhiều phương thức cùng tên nhưng danh sách các đối số (argument lists) thì khác nhau. Polymorphismiistthe abilityttottake on many shapes or forms. Khai Báo Lớp ­ Declaration Class 15 [Thuộc tính bổ sung truy cập] class <Định danh lớp> [: Lớp cơ sở] { } Class Members • Định danh lớp chính là tên của lớp do người xây dựng chương trình tạo ra. • Lớp cơ sở là lớp mà đối tượng sẽ kế thừa để phát triển. • Tất cả các thành viên của lớp được định nghĩa bên trong thân của lớp, phần thân này sẽ được bao bọc bởi hai dấu ({}).