Thông tin tài liệu:
Cơ sở của lập trình hướng đối tượng gắn liền với sự ra đời và định nghĩa về lớp và đối tượng .
Lập trình hướng đối tượng là tư tưởng lập trình trong đó dữ liệu ( data ) và hàm ( functions ) được đóng gói trong các lớp.
Một đối tượng là một thể hiện ( instance ) của lớp có các thành phần dữ liệu riêng của nó . Các đối tượng là thể hiện của cùng một lớp sẽ có cùng một bộ “ khung “ do lớp tạo ra....
Nội dung trích xuất từ tài liệu:
Chương 9: Lập trình hướng đối tượng trong C#
Chương 9 – Lập trình hướng đối tượng trong C#
Outline
9.1. Lớp và đối tượng - Class and Objects
9.2. Giao diện - Interfaces
9.3. Quyền truy cập - Modifiers
9.4. Thuộc tính - Properties
9.5. Phương thức – Methods
9.6. Sự kiện và hàm đại diện- Events and Delegates
9.7. Tính kế thừa – Inheritance
Các lớp cơ sở và các lớp dẫn xuất
Protected Members
Phương thức khởi tạo: Constructors và hủy Destructors
trong lớp dẫn xuất
9.8. Tính đa hình – Polymorphism
Lớp Abstract và phương thức
Nạp chồng toán tử
9.1. Lớp và đối tượng - Class and Objects
Cơ sở của lập trình hướng đối tượng gắn liền với sự ra đời và định nghĩa về
lớp và đối tượng .
Lập trình hướng đối tượng là tư tưởng lập trình trong đó dữ liệu ( data ) và
hàm ( functions ) được đóng gói trong các lớp
Một đối tượng là một thể hiện ( instance ) của lớp có các thành phần dữ liệu
riêng của nó . Các đối tượng là thể hiện của cùng một lớp sẽ có cùng một
bộ “ khung “ do lớp tạo ra
Phân loại lớp : Có thể phân loại lớp dựa theo nhiều tiêu chí khác nhau :
Lớp cha và lớp con : phân loại theo tính kế thừa .
Lớp nội và lớp ngoại : phân loại theo tính chứa đựng .
Lớp trừu tượng và lớp cài đặt : phân loại theo chức năng .
9.1
Khai báo lớp
Cấu trúc :
[Bổ từ truy cập] class [:] [Tên_lớp_cha]
Trong đó các thành phần nằm trong [] là không bắt buộc
Bổ từ truy cập : Xác định phạm vi sử dụng của lớp .
class : Từ khoá chỉ ra một khai báo lớp
Tên_lớp : Là tên của lớp không chứa dấu cách và phải bắt đầu
bằng kí tự
“ : “ : Thể hiện tính kế thừa
Tên_lớp_cha : Tên của lớp cha mà lớp kế thừa từ đó
9.1
Khởi tạo đối tượng
Khởi tạo ( Instantiate ) một đối tượng từ một lớp là cấp phát bộ nh ớ
cho đối tượng đó trong vùng nhớ Heap . Một đối tượng được khai
báo nhưng chưa khởi tạo thì chưa được cấp phát bộ nhớ
Cách khởi tạo một đối tượng trong C# giống với Java và VB.Net
= new ( Các tham số nếu có )
9.1
Phương thức khởi tạo - Constructor
Constructor là một phương thức đặc biệt của lớp
Dùng để khởi tạo đối tượng và thiết lập các dữ liệu ban đầu trong
một lớp
Constructor có cùng tên với tên lớp và không có giá trị trả về
Constructor có thể nạp chồng
Constructor phải được sử dụng với bổ từ truy cập public
Constuctor trong C# giống hệt constructor trong Java
Cú pháp :
● public () [ : base () ]
{ // Đặt mã của bạn vào đây }
● public ( các tham số ) [ : base( các tham số ) ]
{ // Đặt mã của bạn vào đây }
9.1
Phương thức khởi tạo - Constructor
base là từ khoá mặc định trong C# ( cũng như me trong VB.Net và
super trong Java ) để chỉ lớp cha ( nếu có ) của lớp đang xét
Trong phương thức khởi dựng của một lớp có thể gọi các phương
thức khởi dựng của lớp cha thông qua từ khoá base
● public ( ) [: base () ]
●public ( các tham số ) [ : base( các tham số ) ]
Ngoài ra , trong một phương thức khởi dựng , ta còn có thể gọi các
phương thức khởi dựng nạp chồng khác của lớp với từ khoá this
● public ( các tham số ) [ : this ( các tham số ) ]
9.1
Phương thức khởi tạo - Constructor
Trong một lớp , nếu không có Constructor thì C# sẽ sử dụng
constructor mặc định ( không chứa tham số ) và khởi tạo các biến
thành viên với giá trị mặc định :
Các biến giá trị số được gán bằng 0
Các biến đối tượng được gán bằng null
Ta cũng có thể có static constructor ( phương thức khởi tạo tĩnh ) .
Đây là phương thức chỉ được thực hiện một lần bất cứ khi nào một đối
tượng của lớp được Instantiate . Tác dụng của static constructor là
giúp ta khởi tạo giá trị cho các biến thành phần kiểu static trong một
lớp
9.1
1 // Time1.cs
2 // Class Time1 maintains time in 24-hour format.
3
4 using System; Khởi tạo mặc định instance variables Time1.cs
5 Private
6 // Time1 class definition
7 public class Time1 : Object
8 {
Phương thức SetTime
9 private int hour; // 0-23
10 private int minute; // 0-59
11 private int second; // 0-59
Tính hiệu lực của
12 tham số
13 // Time1 constructor initializes instance variables to
14 // zero to set default time to midnight
15 public Time1()
16 {
17 SetTime( 0, 0, 0 );
18 }
19
20 // Set new time value in 24-hour format. Perform validity
21 // checks on the data. Set invalid values to zero.
22 public void SetTime(
23 int hourValue, int minuteValue, int secondValue )
24 {
25 hour = ( hourValue >= 0 && hourValue < 24 ) ?
26 hourValue : 0;
27 minute = ( minuteValue >= 0 && minuteValue < 60 ) ?
28 minuteValue : 0;
29 second = ( secondValue >= 0 && secondValue < 60 ) ?
30 secondValue : 0;
31 }
32
9.1
Time1.cs
33 ...