Access Modifier là gì?

Kiểu truy cập là gì?

Không phải lúc nào, cha mẹ cũng truyền hết cho con cái, nhiều lúc họ sẽ giữ lại một thứ gì đó bí mật cho riêng mình. Trong C# đây được gọi là kiểu truy cập (access modifier).

Từ trước đến nay, các bạn khai báo hàm thường kèm theo một access modifier đó là public, tuy nhiên bạn thường không ý thức được nó là gì. public chính là access modifier, nó quyết định các lớp khác có được quyền truy cập vào thuộc tính hay phương thức của lớp này hay không?
Trong C#, access modifier có 3 loại thường được sử dụng nhất đó là public, protected và private.

public: được sử dụng ở mọi nơi.

protected: chỉ được sử dụng ở lớp cha và lớp con.

private: chỉ được sử dụng trong lớp đó.

Ví dụ: Tạo hai lớp Cha và Con, lớp Cha có 3 thuộc tính, là HinhDang, TamSu và BiMat, 3 phương thức là XuatHinhDang, XuatTamSu và XuatBiMat. Giả sử, HinhDang, TamSu và BiMat có các kiểu truy cập lần lượt là public, protected, private, XuatHinhDang, XuatTamSu, XuatBiMat cũng như vậy. Hãy làm rõ sự khác nhau của access modifier.

public class LopCha
{
    public string HinhDang { get; set; }

    protected string TamSu { get; set; }

    private string BiMat { get; set; }

    public void XuatHinhDang()
    {
        Console.WriteLine("Cha cho con hinh dang");
    }

    protected void XuatTamSu()
    {
        Console.WriteLine("cha trut bau tam su voi con");
    }

    private void XuatBiMat()
    {
        Console.WriteLine("Bi mat nay chi minh cha biet");
    }
}
class LopCon:LopCha
{
    public void NgheTamSu()
    {
        base.XuatTamSu();
    }

    public void NhanHinhDang()
    {
        base.XuatHinhDang();
    }
}
static void Main(string[] args)
{
    LopCha cha = new LopCha();
    cha.XuatHinhDang();
   
    LopCon con = new LopCon();
    con.NgheTamSu();
    con.NhanHinhDang();

    Console.ReadLine();
}
 

Phân tích mã:

Bước 1: tạo lớp cha như đề bài đã cho.

Bước 2: nhìn vào lớp con ta thấy, trong lớp con, ta chỉ có thể gọi được phương thức NhanHinhDang và XuatTamSu từ lớp cha thông qua từ khóa base, vì đây là 2 phương thức public và protected(chỉ có thể truy cập ở lớp cha (base class) và lớp con (derived class). Nếu bạn cố tình gọi XuatBiMat (private) của lớp cha trong lớp con, chương trình sẽ báo lỗi.

Bước 3: tạo đối tượng lớp cha và lớp con trong hàm Main, bạn sẽ thấy bạn chỉ có thể gọi các phương thức và thuộc tính public của 2 đối tượng đó, còn protected và private thì không thể.

Trong hình, đối tượng cha chỉ có thể gọi ra thuộc tính HinhDang và phương thức XuatHinhDang Trong hàm Main. Đây là thuộc tính phương thức public.

Từ khóa base là gì?

base là đại diện của lớp cha, ta có thể sử dụng từ khóa base bên trong lớp con để truy cập các phương thức, thuộc tính của lớp cha. Ở ví dụ trên, trong Phương thức NgheTamSu và NhanHinhDang của lớp con ta đã thấy một ví dụ của từ khóa base.

Các môn học khác

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.

SQL là ngôn ngữ truy vấn mang tính cấu trúc, nó cho phép bạn truy cập và sử dụng database.