Lập trình hướng đối tượng trong C# - Pdf 95

Lập trình hướng đối
tượng trong C#
(Object Oriented Programming in C#)
Lớp và đối tượng
Class & Object
Giới thiệu về
class

Xây dựng các kiểu dữ liệu mới là đặc tính quan trọng của ngôn
ngữ lập trình hướng đối tượng

Có thể tạo kiểu dữ liệu mới trong C# bằng cách định nghĩa lớp
(class). Mỗi thể hiện của lớp được gọi là đối tượng (object)

Lớp là 1 kiểu dữ liệu chung của một nhóm đối tượng nào đó. Ví dụ:
loài mèo, loài chó
Tạo class
Ví dụ:
public class Cat
{
// Trường (field)
public string _name;
public double _weight;
// Phương thức (method)
public void Sound()
{
Console.WriteLine(“Mew mew”);
}
}
Tương tự như struct, định
nghĩa class trong C# cũng hoàn

{
public Cat(string name)
{
_name = name;
}
}
Hàm khởi tạo
(Constructor)

Khi đó, ta không thể khởi tạo đối tượng bằng hàm Cat() được nữa mà phải
dung hàm Cat(string name)
// Lệnh đúng
Cat cat1 = new Cat(“Tom”);
// Lệnh có lỗi
Cat cat2 = new Cat();

Ta có thể ghi đè lên hàm khởi tạo mặc định, mục đích để đưa các dữ liệu về
mặc định
public Cat()
{
_name = “Mew”;
_weight = 1;
}
Từ khóa this

Từ khóa this dùng để truy cập thể hiện hiện tại của class, thường
dùng để phân biệt tên thành viên và tên tham số khi có sự trùng
nhau
public class Person
{

{
_name = name;
_weight = weight;
}
}
// Khi tạo đối tượng
Cat cat1 = new Cat(); // name = “Mew”, weight = 1
Cat cat2 = new Cat(“Tom”); // name = “Tom”, weight = 1
Cat cat3 = new Cat(weight: 2); // name = “Mew”, weight = 2
Tương tự như hàm, hàm khởi
tạo cũng có các chức năng: giá
trị tham số mặc định, truyền
giá trị theo tên tham số
Từ khóa static

Trong class, ta có thể định nghĩa các thành viên tĩnh. Để gọi 1
thành viên tĩnh, ta phải gọi thông qua tên lớp chứ không gọi qua
thể hiện của lớp đó
// Gọi đúng
Console.WriteLine(“Hello World”);
// Gọi sai
Console a = new Console();
a.WriteLine(“Hello World”);
Trường dữ liệu
tĩnh
public class TaiKhoan
{
public static int soLuongTK = 0;
public static double laiSuat = 0.07;
public double TienGui;

viên tĩnh
Ba trụ cột của hướng
đối tượng

Tính đóng gói

Tính kế thừa

Tính đa hình
Tính đóng gói
Encapsulation
Các bổ từ truy
xuất trong C#
Bổ từ truy xuất Giới hạn truy cập
public Phạm vi không giới hạn
private Chỉ được sử dụng trong class khai báo nó
protected Chỉ được sử dụng trong class khai báo nó và các
class dẫn xuất
internal Chỉ được sử dụng trong các class cùng khối
assembly với class khai báo nó
protected internal Chỉ được sử dụng trong class khai báo nó và các
class dẫn xuất thuộc cùng khối assembly
C# hỗ trợ 5 loại bổ từ truy xuất
Mặc định với class là internal
Mặc định với các thành viên bên trong class là private
Đóng gói với
phương pháp
truyền thống

Trong C#

}
Đóng gói với
thuộc tính
của .NET
(.NET property)

Thay vì phải viết 2 hàm getter và setter riêng biệt như trên, C# cho
phép sử dụng “thuộc tính” (property) để tương tác giống như tương tác
với dữ liệu
public class Humans
{
private string name;
// Thuộc tính (property)
public string Name
{
get { return name; }
set { name = value; }
}
}
Đóng gói với
thuộc tính
của .NET
(.NET property)
// Truyền thống
Humans a = new Humans();
a.setName(“Linh”);
Console.WriteLine(“His name
is {0}”, a.getName());
// Thuộc tính
Humans a = new Humans();

if (value.Length > 15)
Console.WriteLine(“Name must be less than 16 characters!”);
else name = value;
}
}
}
Thuộc tính tự
động

Nếu 2 hàm get, set của thuộc tính có dạng đơn giản là đọc và ghi
giá trị của 1 trường, ta có thể viết gọn lại thành
public class Pokemon
{
public string Name { get; set; }
public int ID { get; set; }
public int Level { get; set; }
}

C# sẽ tự tạo 1 trường private giống như trường name bên trên
Cú pháp khởi
tạo đối tượng

Với class Pokemon đã tạo ở trên, ta có thể tạo 1 đối tượng Pokemon
Pokemon mewtwo = new Pokemon();
mewtwo.Name = “Mewtwo”;
mewtwo.ID = 150;
mewtwo.Level = 100;

Ta có thể viết gọn đoạn code trên theo cú pháp khởi tạo đối tượng
Pokemon mewtwo = new Pokemon()

public partial class Humans
{
public string Name { get; set; }
public int Age { get; set; }
}
// class2.cs
public partial class Humans
{
public Humans()
{ }
}


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status