Khởi Tạo Phương Thức Khởi Tạo Trong C Sharp
Có thể bạn quan tâm
- Phương thức khởi tạo, cú pháp khai báo phương thức khởi tạo C#
- Sử dụng phương thức khởi tạo trong C#
- Phương thức khởi tạo của lớp cơ sở trong C#
- Phương thức khởi tạo riêng tư (private) C#
- Phương thức khởi tạo tĩnh (static) C#
Phương thức khởi tạo, cú pháp khai báo phương thức khởi tạo C#
Giới thiệu về khởi tạo (Constructor) lớp trong C#
Khi một đối tượng của lớp (class) hay cấu trúc (struc) được tạo, thì phương thức khởi tạo của lớp được gọi. Phương thức khởi tạo có tên cùng với tên lớp, có thể có nhiều phương thức khởi tạo nhưng mỗi phương thức có các tham số khác nhau. Phương thức khởi tạo là nơi bạn khởi tạo các giá trị dữ liệu nó giúp cho việc đọc code dễ hơn và sử dụng lớp một cách mềm dẻo hơn.
Nếu bạn không xây dựng phương thức khởi tạo nào cho lớp, C# sẽ tạo ra một phương thức khởi tạo ngầm định, nó thiết lập giá trị các thành viên dữ liệu nhận giá trị mặc định (tùy theo kiểu dữ liệu).
Về phần sử dụng phương thức khởi tạo đã giới thiệu tại: Phương thức khởi tạo, phần này trình bày hệ thống và kỹ hơn.
Cú pháp khai báo phương thức khởi tạo
Phương thức khởi tạo có tên giống tên lớp, không có kiểu trả về, hãy xem ví dụ sau:
class Product { private string name; private decimal price; // Khai báo phương thức khởi tạo với 2 tham số public Product(string nameproduct, decimal priceproduct) { name = nameproduct; price = priceproduct; } // Khai báo phương thức khởi tạo không tham số public Product() { name = "Không tên"; price = 0; } // Thuộc tính Name lấy hoặc thiết lập tên sản phẩm public string Name { set { name = value;} get { return name;} } }Bạn cũng lưu ý, trong lớp có các phương thức mà thực hiện một biểu thức đơn giản, thì bạn có thể gán ngay biểu thức vào tên phương thức bằng ký hiệu =>, kể cả setter và getter, ví dụ:
class Category { private string categoryname; // Dùng thân biểu thức cho phương thức khởi tạo public Category(string nameofCategory) => categoryname = nameofCategory; public String Name { // Dùng thân biểu thức cho setter, getter set => categoryname = value; get => categoryname; } }Source code: CS009_Event (Git), hoặc tải cs009-event
Sử dụng phương thức khởi tạo trong C#
Khi tạo đối tượng của lớp bằng toán tử new thì nó sẽ tạo đối tượng và thi hành phương thức khởi tạo tương ứng phù hợp với tham số.
// Tạo đối tượng, không truyền tham số nên // nó gọi phương thức khởi tạo không tham số Product product1 = new Product(); Console.WriteLine(product1.Name); // Không tên Product product2 = new Product("Laptop", 123); Console.WriteLine(product2.Name); // LaptopPhương thức khởi tạo của lớp cơ sở C#
Trong C# các lớp có tính kế thừa, một lớp có thể kế thừa lại các thuộc tính, phương thức từ lớp khác (lớp cơ sở), phần này nói ở Kế thừa lớp trong C#, lưu ý là nếu lớp cha (cơ sở) có xây dựng phương thức khởi tạo, thì cần chỉ định rõ gọi phương thức khởi tạo nào của lớp cơ sở (truyền tham số) khi phương thức khởi tạo lớp con thi hành. Thực hiện điều này bằng cách dùng từ khóa base ở khai báo tên phương thức như ví dụ sau:
class CategoryMobile : Category { private string description; // Khi phương thức khởi tạo này được gọi, nó gọi phương thức khởi tạo có // một tham số của lớp cơ sở (Category) trước, rồi mới thi hành các code // trong thân của phương thức khởi tạo này public CategoryMobile(string nameofCategory, string mota) : base(nameofCategory) { description = mota; } public string Description { set => description = value; get => description; } }Khi sử dụng, chay đoạn code
CategoryMobile cat1 = new CategoryMobile("Điện thoại", "Danh mục các loại điện thoại"); Console.WriteLine(cat1.Name); Console.WriteLine(cat1.Description); // In ra // Điện thoại // Danh mục các loại điện thoạiPhương thức khởi tạo riêng tư C#
Khi xây dựng một số lớp đặc biệt, nhất là những lớp tiện ích chỉ chứa thành viên tĩnh, bạn mong muốn chỉ ra một cách tường minh lớp này không được phép tạo đối tượng, lớp này không được phép kế thừa thì hãy cho vào một phương thức khởi tạo không tham số và chỉ ra trạng thái truy cập là private, ví dụ:
class MyLib { public static double PI = 3.14; private MyLib() { } }Lúc này nếu dùng lớp khởi tạo đối tượng thì sẽ lỗi
MyLib my1 = new MyLib(); // LỗiKể cả dùng làm lớp cơ sở cũng lỗi
Phương thức khởi tạo tĩnh C#
Bạn có thể xây dựng một phương thức khởi tạo không tham số có chỉ thị truy cập là static, phương thức khởi tạo này dùng để khởi tạo các thành viên dữ liệu tĩnh, nó tự động gọi khi truy cập một thành viên dữ liệu tĩnh lần đầu. Ví dụ:
class MyColorCode { public static string color_primary; public static string color_success; public static string color_danger; public static string color_warning; public static string color_info; // Phương thức khởi tạo tĩnh, được gọi khi lần đầu truy cập một thành viên tĩnh static MyColorCode() { Console.WriteLine("Static MyColorCode Contructor Call"); color_danger = "Red"; color_info = "Cyan"; color_primary = "Navy"; color_success = "Green"; color_warning = "Yellow"; } }Đoạn mã sử dụng kiểm tra:
Console.WriteLine(MyColorCode.color_danger); Console.WriteLine(MyColorCode.color_info);Kết quả là
Static MyColorCode Contructor Call Red CyanSource code: CS010_Constructors (Git), hoặc tải ex010
Mục lục bài viết Phương thức khởi tạo, cú pháp khai báo phương thức khởi tạo C#Sử dụng phương thức khởi tạo trong C#Phương thức khởi tạo của lớp cơ sở trong C#Phương thức khởi tạo riêng tư (private) C#Phương thức khởi tạo tĩnh (static) C# ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mớiTừ khóa » Khởi Tạo Object C#
-
Constructor (hàm Tạo/hàm Dựng) Trong C#, Khởi Tạo Object | Tự Học ICT
-
Sử Dụng Lớp Thuộc Tính Trong C# Tạo Và Sử Dụng đối Tượng Lớp
-
Khởi Tạo đối Tượng (Object Initializer C#3.0) - Minh Hoàng Blog
-
Kiểu Dữ Liệu Object Trong C# | How Kteam
-
Lớp Và đối Tượng Trong C# - Học Lập Trình C# Online - VietTuts
-
Tránh Tạo Object Dư Thừa – C# - Viblo
-
Kiểu Dữ Liệu Object Và Dynamic Trong C# - Quản Trị Máy Tính
-
Kiểu Dữ Liệu Object Và Dynamic Trong C#. – Nguyễn Anh Tuấn
-
Lập Trình Hướng đối Tượng (OOP) Trong C# | Comdy
-
Từ Khóa Var Trong C#
-
Điểm Mới Trong C# 9.0 - Thuộc Tính Chỉ Khởi Tạo
-
Kiến Thức Cơ Bản Về Lập Trình C# Không Thể Bỏ Qua
-
[AP_06] Class Và Object Trong C# - Code Lean
-
C# - C Sharp: Lớp Object | V1Study