Bởi vì C# là ngôn ngữ hướng đối tượng, nên chương trình được thiết kế là sử dụng lớp (class) và đối tượng (object)
Chúng ta sẽ cùng tìm hiểu lớp (class) và đối tượng (object) trong C# như thế nào nhé
1. Đối tượng
Đối tượng (object) là một thực thể trong thế giới thực, ví dụ như cái bàn, cây viết, điện thoại, chiếc xe hơi ….
Đối tượng (object) là một thực thể có trạng thái và hành vi. Ở đây, trạng thái có nghĩa là dữ liệu và hành vi có nghĩa là phương thức.
Bài viết này được đăng tại [kiso.vn]
Đối tượng (object) là một thực thể runtime, vì nó được tạo ra trong thời gian chương trình chạy. Đối tượng là một thể hiện của một lớp. Tất cả các thành viên của lớp có thể được truy cập thông qua đối tượng
Để tạo đối tượng chúng ta sử dụng từ khóa new
People p1 = new People();
Trong ví dụ trên, People là kiểu dữ liệu và p1 là biến tham chiếu đến thể hiện của lớp People. Từ khóa new được cấp phát bộ nhớ trong thời gian chạy (runtime).
2. Lớp
Trong C#, lớp (class) là một nhóm các đối tượng tương tự nhau. Nó là một khuôn mẫu mà từ đó các đối tượng được tạo ra. Nó có thể có các trường, phương thức, hàm xây dựng, hàm hủy…
Ví dụ sau có lớp con người có trạng thái là tên, tuổi, CMND và có hành vi là nói, viết.
public class People { string name; int old; string Id; private void speak() {}; private void write() {}; }
3. Ví dụ
using System; namespace ConsoleApp3 { public class People { public int id; public String name; public int old; public People(int id, String name, int old) { this.id = id; this.name = name; this.old = old; } public void Show() { Console.WriteLine("Id = " + id + ", Name = " + name + ", old = " + old); } } class Test { public static void Main(string[] args) { People p1 = new People(12, "Nguyen Van A", 20); People p2 = new People(18, "Nguyen Van B", 21); p1.Show(); p2.Show(); Console.ReadKey(); } } }
Và kết quả sau khi thực thi đoạn code trên:
Như vậy ở ví dụ trên chỉ có 1 hàm xây dựng có tham số. Vì vậy chúng ta chỉ có 1 cách duy nhất để tạo đối tượng là truyền vào đủ 3 tham số theo thứ tự kiểu dữ liệu là int, string, int. Những cách tạo đối tượng sau đây là không được phép:
- People p3 = new People(); // Vì chương trình không có hàm xây dựng mặc nhiên
- People p4 = new People(12, “Nguyen Van A”); //Vì chương trình không có hàm xây dựng có 2 tham số
- People p6 = new People(“Nguyen Van A”, 12, 20); //Vì kiểu dữ liệu của tham số truyền vào không khớp với kiểu dữ liệu khai báo
4. Lời kết
Như vậy qua bài học này chúng ta có cái nhìn tổng quát về đối tượng và lớp trong c# là gì rồi. Phần tiếp theo mình sẽ cùng tìm hiểu về hàm xây dựng và hàm hủy trong c#.
Cám ơn các bạn đã đọc bài viết.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Đối tượng2. Lớp3. Ví dụ4. Lời kết1. Bảo...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Đối tượng2. Lớp3. Ví dụ4. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát hành miễn phí để...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Đối tượng2. Lớp3. Ví dụ4. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường dẫn đầy đủ Xét...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Đối tượng2. Lớp3. Ví dụ4. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc file và tin tưởng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Đối tượng2. Lớp3. Ví dụ4. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ hổng Directory traversal cũng...