Lớp học và Thành viên – C # trong Điều khoản Đơn giản – các phương thức thành viên của lớp c #

Hãy cùng tìm hiểu về các khái niệm cơ bản về lớp C #, bao gồm các thành viên, cấp độ truy cập, thuộc tính, phương thức, hàm tạo và hơn thế nữa!

Bạn đang xem : các phương thức thành viên của lớp c #

Bây giờ chúng ta đã thảo luận về hệ thống kiểu , kiểu nguyên thủy , toán tử , phương thức , các câu lệnh và vòng lặp cơ bản , chúng ta có thể bắt đầu tìm hiểu về đặc điểm xác định của C # và lập trình hướng đối tượng trong chung: các lớp học.

Một nhóm nam nữ thanh niên ngồi trong giảng đường, không nhìn rõ mặt họ. Thuộc tính của lớp này bao gồm isBoring, isTooLong, amHungry và isItOverYet. Ảnh của Sam Balye / Unsplash

Dự án mẫu

exceptionnotfound / CSharpInSimpleTerms

Đóng góp vào sự phát triển của exceptionnotfound / CSharpInSimpleTerms bằng cách tạo tài khoản trên GitHub.

< p class = "kg-bookmark-author"> GitHub

exceptionnotfound

Dự án cho bài đăng này: 7Classes

Lớp

Một lớp trong C # là một định nghĩa có thể được sử dụng để tạo các thể hiện của lớp đó. Các lớp được tạo bằng từ khóa class . Các lớp C # luôn là kiểu tham chiếu.

  class TestClass
{
    // Một lớp C # trống
}  

Theo quy ước, các lớp C # sử dụng Đặt tên Pascal; mỗi từ trong tên lớp phải viết hoa chữ cái đầu tiên.

Thành viên

Lớp có thể có thành viên. Các thành viên là bất kỳ đối tượng nào trong một lớp là một phần của định nghĩa lớp; mọi thứ được định nghĩa trong một lớp là thành viên của lớp đó. Điều này bao gồm:

  • Trường – Các thành viên của lớp có giá trị và phải được truy cập trực tiếp. Mỗi người trong số này sẽ có một kiểu.
  • Thuộc tính – Các thành viên của lớp cung cấp cách đọc, ghi hoặc thay đổi giá trị do một trường nắm giữ.
  • Phương thức – Mã khối chứa một tập hợp các câu lệnh sẽ được thực thi. Các phương thức có thể có hoặc không trả về giá trị của một kiểu nhất định.
  • Các hàm tạo – Một loại phương thức đặc biệt đặt giá trị ban đầu cho các thuộc tính trong lớp.

Phiên bản lớp

Chúng tôi tạo một phiên bản của lớp bằng cách sử dụng từ khóa new :

  var myInstance = new TestClass ();  

Sau đó, chúng ta có thể thao tác với cá thể bằng cách thay đổi các giá trị thuộc tính, gọi phương thức hoặc hàm tạo, v.v.

Trường lớp

Khi viết một lớp C #, chúng tôi xác định các trường trong lớp bằng cách cung cấp cho chúng một kiểu.

  lớp ExampleClass
{
    string Property1; // Null mặc định
    int Property2; // Mặc định 0
    số thập phân Thuộc tính3; // Mặc định 0.0
}  

Khi một thể hiện của một lớp được tạo, mỗi trường của lớp sẽ nhận giá trị mặc định của chúng.

  var myClass = new ExampleClass ();
Console.WriteLine (myClass.Property1); //Vô giá trị
Console.WriteLine (myClass.Property2); // 0
Console.WriteLine (myClass.Property3); //0.0

Công cụ sửa đổi quyền truy cập

Mỗi trường hoặc thuộc tính trong lớp C # có thể được khai báo bằng công cụ sửa đổi quyền truy cập, là một từ khóa chỉ định ai hoặc cái gì có thể truy cập vào trường hoặc thuộc tính đó.

  • Riêng tư – Thuộc tính chỉ có thể truy cập bên trong các bản sao của lớp này.
  • Được bảo vệ – Thuộc tính có thể truy cập được bởi các bản sao của lớp này VÀ các bản sao của lớp kế thừa từ lớp này.
  • Public – Thuộc tính có thể truy cập từ bất kỳ mã nào trong bất kỳ hội đồng nào tham chiếu đến hợp ngữ cho lớp này.
  • Internal – Chỉ có thể truy cập thuộc tính từ bất kỳ mã nào trong cùng một cụm.

Theo mặc định, tất cả các thuộc tính được khai báo mà không có công cụ sửa đổi quyền truy cập là private . Chúng ta có thể đặt công cụ sửa đổi quyền truy cập trên các thuộc tính như sau:

  class ExampleClass
{
    public string Property1;
    bảo vệ int Property2;
    số thập phân tư hữu Tài sản3;
}  

Phương thức Getter và Setter

Các trường là thành viên trực tiếp của lớp và phải được truy cập trực tiếp. Đây là một ý tưởng tồi trong hầu hết các trường hợp; nói chung, chúng tôi muốn sử dụng các thuộc tính hơn là các trường.

Xem Thêm  Hình nền CSS - cách thêm hình nền trong css

Các thuộc tính cung cấp một cách để sửa đổi và truy cập một giá trị trong lớp. Chúng được hỗ trợ bởi một trường, giữ giá trị đã nói và sử dụng công cụ sửa đổi quyền truy cập.

Đối với công khai hoặc được bảo vệThuộc tính chúng ta có thể khai báo các phương thức getter và setter, các phương thức này thường sử dụng cú pháp {get; bộ; } :

  class ExampleClass
{
    public string Property1 {get; bộ; }
    bảo vệ int Property2 {get; bộ; }
    số thập phân tư hữu Tài sản3;
}  

Nói rõ hơn: một thuộc tính có các phương thức getter và / hoặc setter và một trường không có.

Nếu chúng ta muốn cho phép các lớp hoặc đối tượng khác truy cập trường private (chẳng hạn như Property3 trong ví dụ trên), chúng ta có thể khai báo thuộc tính công cộng và sửa đổi các phương thức getter và setter của nó để đọc và thay đổi giá trị của trường:

  class ExampleClass
{
    public string Property1 {get; bộ; }
    bảo vệ int Property2 {get; bộ; }
    số thập phân tư hữu Tài sản3;
    
    công khai thập phân PublicProperty3
    {
        lấy
        {
            trả lại Tài sản3;
        }
        bộ
        {
            Property3 = giá trị;
        }
    }
}  

Trong trường hợp này, thuộc tính PublicProperty3 lưu trữ và truy xuất các giá trị từ trường Property3 .

Thuộc tính Tự động Triển khai

Trong hầu hết các trường hợp, nếu chúng ta muốn thuộc tính có thể sửa đổi được bên ngoài lớp mà nó được khai báo, thì việc khai báo thuộc tính công cộng với các phương thức getter và setter là con đường để đi. Đằng sau, việc này thực sự tạo ra một trường riêng và các phương thức get / set cho thuộc tính. Thêm vào đó, nó làm cho mã của chúng tôi sạch hơn nhiều:

  class ExampleClass
{
    public string Property1 {get; bộ; }
    bảo vệ int Property2 {get; bộ; }
    public decimal Thuộc tính3 {get; bộ; }
}  

Các thuộc tính được viết theo cách này được gọi là các thuộc tính được triển khai tự động. Phần lớn thời gian, khi bạn viết một chương trình bằng C #, các lớp của bạn sẽ sử dụng các thuộc tính được triển khai tự động.

Thuộc tính được tính toán

Chúng ta có thể cũng tạo ra các thuộc tính được tính toán sử dụng các giá trị của các thuộc tính khác trong cùng một lớp để trả về một giá trị của riêng chúng. Các thuộc tính được tính toán sẽ chỉ có một phương thức getter:

  class ExampleClass
{
    public string ItemName {get; bộ; }
    bảo vệ int Số lượng {get; bộ; }
    public decimal ItemPrice {get; bộ; }
    
    Tổng chi phí thập phân công khai
    {
        lấy
        {
            trả lại Số lượng * ItemPrice;
        }
    }
}  

Công cụ sửa đổi quyền truy cập lớp

Cũng giống như thuộc tính lớp, bản thân các lớp C # có thể sử dụng công cụ sửa đổi quyền truy cập.

  lớp công khai PublicClass {/*...*/}
lớp được bảo vệ ProtectedClass {/*...*/}
lớp riêng PrivateClass {/*...*/}
class InternalClass {/*...*/} // Công cụ sửa đổi quyền truy cập mặc định là nội bộ  

Các lớp được khai báo trực tiếp trong không gian tên của tôi là public hoặc < mã> nội bộ ; nội bộ là mặc định. Không gian tên sẽ được thảo luận trong Phần 11 của loạt bài này.

Nói chung, một lớp dẫn xuất (nghĩa là một lớp kế thừa từ một lớp khác) không thể có khả năng truy cập lớn hơn lớp cha của nó. Ví dụ: chúng tôi không thể làm điều này:

  nội bộ lớp ClassA {/*...*/}
lớp công khai ClassB: ClassA {/*...*/}  

Lỗi: Khả năng truy cập không nhất quán: lớp cơ sở ClassA ít truy cập hơn lớp ClassB

Tuy nhiên, public lớp có thể kế thừa từ một lớp private . Lớp dẫn xuất ít nhất phải có thể truy cập được như lớp cha.

Các phương thức

Một lớp C # có thể có các phương thức. Cũng giống như thuộc tính, các phương thức có công cụ sửa đổi quyền truy cập và công cụ sửa đổi quyền truy cập mặc định của chúng là private .

  public class ClassC
{
    public string Property1 {get; bộ; }
    
    public void Method1 () {/*...*/}
    
    chuỗi công khai MethodWithReturn ()
    {
        /*...*/
        trả về "stringValue";
    }
}  

Các phương thức trong một lớp cũng có thể có các tham số đầu vào:

  public class ClassD
{
    public string MethodWithParameters (int param1, string param2, decimal param3)
    {
        /*...*/
        trả về "stringValue";
    }
}  

Các phương thức trong các lớp tuân theo các quy tắc giống như các phương thức nói chung; tham khảo bài trước trong loạt bài này để biết thêm thông tin.

Xem Thêm  Hướng dẫn tạo hiệu ứng tuyết rơi với Canvas HTML5 - code tuyết rơi

Các hàm tạo

Một lớp C # sẽ luôn có ít nhất một phương thức là một nhà xây dựng; phương thức này chịu trách nhiệm gán các giá trị mặc định cho các thuộc tính của lớp khi một thể hiện của nó được tạo. Phương thức khởi tạo phải có cùng tên với lớp và không có kiểu trả về.

  public class ClassE
{
    public ClassE () {/ * Phương thức xây dựng * /}
}  

Chúng tôi có thể chỉ định các tham số đầu vào cho một hàm tạo, giống như bất kỳ phương thức nào khác. Hơn nữa, các lớp của chúng ta có thể có nhiều hàm tạo, miễn là mỗi hàm tạo có một bộ tham số đầu vào khác nhau.

  public class ClassF
{
    public string Property1 {get; bộ; }
    public int Property2 {get; bộ; }

    public ClassF (int param1)
    {
        Property2 = param1;
    }

    public ClassF (chuỗi param1)
    {
        Property1 = param1;
    }

    public ClassF (chuỗi param1, int param2)
    {
        Property1 = param1;
        Property2 = param2;
    }
}

var myClassF = new ClassF ("stringValue");
var otherClassF = new ClassF ("stringValue", 6);  

Implicit Constructors

Nếu chúng tôi không chỉ định phương thức tạo, Trình biên dịch C # sẽ tạo một phương thức khởi tạo ngầm định, phương thức này sẽ được gọi bất cứ khi nào chúng ta tạo một thể hiện mới của một lớp và không truyền bất kỳ tham số nào cho phương thức khởi tạo. Loại hàm tạo này còn được gọi là hàm tạo không tham số công khai, vì nó sẽ là công khai và không có tham số.

  public class ClassG
{
    public string Property1 {get; bộ; }
    public int Property2 {get; bộ; }
}

var myClassG = new ClassG ();  

Tất nhiên, chúng ta cũng có thể tạo một hàm tạo không tham số công khai:

  public class ClassH
{
    public string Property1 {get; bộ; }
    public int Property2 {get; bộ; }
    
    public ClassH () {/ * Hàm tạo không tham số công khai * /}
}

var myClassH = new ClassH ();  

Glossary

  • Instance – một đối tượng duy nhất được tạo từ một lớp hoặc định nghĩa đối tượng.
  • Thành viên – thuộc tính, phương thức, hàm tạo hoặc đối tượng khác là một phần của lớp.
  • Thuộc tính – thành viên giá trị cụ thể của một lớp. Có các phương thức getter và setter.
  • Phương thức getter và setter – Các phương thức chuyên biệt để truy xuất (lấy) và thay đổi (đặt) giá trị của một thuộc tính cụ thể.
  • Thuộc tính được triển khai tự động – Thuộc tính sử dụng {get; bộ; } cú pháp và không chỉ định phương thức getter và setter tùy chỉnh.
  • Thuộc tính được tính toán – Thuộc tính trả về giá trị dựa trên giá trị hiện tại của các thuộc tính khác trong cùng một lớp.
  • Công cụ sửa đổi quyền truy cập – từ khóa xác định mức độ truy cập để cấp một lớp.
  • Trường – thuộc tính truy cập trực tiếp trong một lớp. Nói chung, chúng tôi muốn tránh sử dụng các thuộc tính này để ưu tiên sử dụng các thuộc tính với getters và setters.
  • Hàm tạo – một phương thức chuyên biệt đặt các giá trị ban đầu của các thuộc tính trong một lớp.
  • Hàm khởi tạo ngầm định – Một hàm tạo được tạo tự động bởi trình biên dịch. Các lớp không có hàm tạo xác định sẽ có một hàm tạo ngầm định.

Từ khóa mới

  • class – Được sử dụng để xác định một lớp C #.
  • get set – Được sử dụng để xác định các phương thức getter và setter tương ứng cho các thuộc tính của lớp.
  • new – Tạo một phiên bản mới của một đối tượng.

Summary

Các lớp trong C # là tập hợp các thuộc tính, các phương thức, hàm tạo và các thành viên khác; các phiên bản của một lớp được tạo bằng cách sử dụng các định nghĩa này và từ khóa new . Các phiên bản của lớp luôn là kiểu tham chiếu.

Các lớp C # hỗ trợ nhiều loại thuộc tính, bao gồm thuộc tính được triển khai tự động, thuộc tính được tính toán và thuộc tính riêng. Thuộc tính có các phương thức get set cho phép chúng tôi truy xuất và sửa đổi giá trị của thuộc tính; các thuộc tính không có phương thức getter hoặc setter là các trường có thuật ngữ và việc sửa đổi trực tiếp các giá trị của trường thường (mặc dù không phải lúc nào) cũng là một phương pháp không tốt.

Các công cụ sửa đổi quyền truy cập (ví dụ: public , private , protected , v.v.) cho phép người lập trình chỉ định mức độ truy cập cho các thuộc tính, phương thức và bản thân các lớp.

Các phương thức trong các lớp C # hoạt động giống như các phương thức khác; chúng có thể được gọi trên các thể hiện của lớp.

Tất cả các lớp C # phải có ít nhất một hàm tạo. Đây là một phương thức đặc biệt đặt các giá trị ban đầu cho các thuộc tính và trường của một lớp khi một thể hiện của lớp được tạo. Các hàm tạo không chỉ định kiểu trả về, thậm chí không phải void . Chúng ta có thể xác định các hàm tạo của riêng mình, với điều kiện là mỗi hàm có một bộ tham số đầu vào khác nhau. Nếu không có hàm tạo nào được xác định, trình biên dịch của C # sẽ đảm bảo rằng lớp tự động có hàm tạo không tham số công khai.

Bạn vẫn có câu hỏi? Tôi có thể giúp! Hãy hỏi họ trong phần nhận xét bên dưới!

Trong phần tiếp theo của loạt bài này, chúng ta sẽ đi sâu vào hai loại giá trị đặc biệt trong C # và thảo luận chúng được sử dụng để làm gì. Hãy xem phần Cấu trúc và Tổng thể của loạt bài siêu lớn về C # trong Điều khoản đơn giản!

Chúc bạn viết mã vui vẻ!

Chia sẻ bài viết này









Xem thêm những thông tin liên quan đến chủ đề các phương thức thành viên của lớp c #

Thành viên tĩnh (static) của lớp đối tượng trong Java

alt

  • Tác giả: Thanh Duong Huu
  • Ngày đăng: 2021-11-16
  • Đánh giá: 4 ⭐ ( 2130 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giới thiệu sử dụng thuộc tính tĩnh và phương thức tĩnh.

Cú pháp C# cơ bản

  • Tác giả: netcore.vn
  • Đánh giá: 5 ⭐ ( 2707 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cú Pháp C# Cơ Bản

Phương thức thành viên (member method) của class C#

  • Tác giả: trithucdoisong.net
  • Đánh giá: 4 ⭐ ( 7531 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phương thức trong C# – thành phần xử lý thông tin của struct hoặc class – đã được xem xét một phần trong bài học về struct trong C#. Tuy nhiên, còn rất nhiều

Lớp(class) và Đối tượng trong C++

  • Tác giả: quantrimang.com
  • Đánh giá: 5 ⭐ ( 4928 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mục đích chính của C++ là bổ sung thêm tính hướng đối tượng (object) cho Ngôn ngữ lập trình C và các Lớp (class) là tính năng trung tâm của C++ mà hỗ trợ lập trình hướng đối tượng và thường được gọi là các kiểu người dùng tự định nghĩa (user-defined).

Thành viên static của một class trong C# – Minh Hoàng Blog

  • Tác giả: minhhn.com
  • Đánh giá: 4 ⭐ ( 4546 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Class trong C++: Tạo Lớp và Đối tượng trong C++ Cơ bản

  • Tác giả: ironhackvietnam.edu.vn
  • Đánh giá: 3 ⭐ ( 1131 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Class (Lớp) trong C++ thực chất là gì? Làm sao để tạo các lớp và đối tượng? Cách sử dụng chúng trong C++ như thế nào? Xem ngay kẻo lỡ!

Từ khóa Static trong Lập trình hướng đối tượng

  • Tác giả: howkteam.vn
  • Đánh giá: 3 ⭐ ( 6987 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Từ khóa Static trong Lập trình hướng đối tượng

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách thêm khóa chính vào bảng hiện có trong SQL Server (ví dụ T-SQL) - sql thêm cột khóa chính