Trước đó, Mytour đã chia sẻ kiến thức về mảng (array) và vòng lặp trong C#. Bài viết tiếp theo dưới đây sẽ tiếp tục đề cập đến lớp và đối tượng trong C#.
Lớp và Đối tượng trong C#
1. Lớp và Đối tượng trong C#.
2. Lớp trong C#.
2.1. Cách Khai Báo Lớp trong C#.
2.2. Ví Dụ về Lớp trong C#.
3. Đối Tượng trong C#.
3.1. Cách Khai Báo Đối Tượng trong C#.
3.2. Khởi Tạo Đối Tượng trong C#.
1. Lớp và Đối tượng trong C#
Lớp trong C# là kết quả của quy trình thiết kế hay bản thiết kế do người lập trình định nghĩa từ các đối tượng cụ thể. Lớp, ở mức cơ bản, kết hợp các trường (field) và phương thức (method) (định nghĩa hành vi) thành một thực thể đơn.
Trong C#, lớp hỗ trợ tính đa hình, kế thừa và cung cấp các khái niệm về lớp dẫn xuất (derived class) và lớp cơ sở (base class).
2. Lớp trong C#
2.1. Cách Khai Báo Lớp trong C#
Khi ta khai báo một lớp trong C#, chúng ta sử dụng từ khóa Class, theo sau là tên của lớp. Tùy thuộc vào yêu cầu của ứng dụng, có thể sử dụng một số thuộc tính tùy chọn khi khai báo lớp. Nhìn chung, khai báo lớp trong C# có thể bao gồm các thành phần sau:
- Modifier: Có thể là public hoặc internal, ... . Mặc định, modifier của lớp là internal.
Constructor trong lớp được dùng để tạo ra các đối tượng mới. Các trường đại diện cho trạng thái của lớp và đối tượng, còn các phương thức thực hiện hành vi của chúng.
2.2. Ví dụ về lớp trong C#
Dưới đây là một ví dụ về lớp trong C#:
3. Đối tượng trong C#
Đối tượng là yếu tố cơ bản trong lập trình hướng đối tượng. Trong chương trình C#, chúng ta tạo ra nhiều đối tượng khác nhau và tương tác với chúng thông qua việc gọi các phương thức.
Một đối tượng trong C# bao gồm:
- Trạng thái (state): thể hiện qua các thuộc tính của đối tượng, đồng thời phản ánh trạng thái của nó.
- Hành vi (behavior): biểu hiện qua các phương thức của đối tượng, đồng thời phản ánh cách nó tương tác với các đối tượng khác.
- Định danh: gán một tên duy nhất cho đối tượng, cho phép tương tác với các đối tượng khác.
Trong ví dụ dưới đây, Dog được coi là một đối tượng, bao gồm định danh, trạng thái và hành vi của nó.
Các đối tượng trong C# tương ứng với thực tế. Ví dụ, một chương trình đồ họa có thể có các đối tượng như hình tròn, hình vuông, menu. Hoặc hệ thống cửa hàng mua sắm trực tuyến bao gồm giỏ hàng, khách hàng và sản phẩm trực tuyến.
3.1. Khai báo đối tượng (hay còn gọi là khởi tạo lớp) trong C#
Khi một đối tượng của một lớp được tạo, quá trình đó được gọi là khởi tạo. Tất cả các biến thể chia sẻ các thuộc tính và hành vi của lớp. Tuy nhiên, giá trị của các thuộc tính đó, nghĩa là trạng thái, là duy nhất cho mỗi đối tượng. Một lớp có thể có nhiều biến thể khác nhau.
Dưới đây là một ví dụ về cách khai báo đối tượng trong C#:
Khi chúng ta khai báo các biến, trình biên dịch sẽ thông báo rằng chúng ta sẽ sử dụng tên để chỉ định kiểu dữ liệu. Với biến nguyên thủy, khai báo này đồng thời dành bộ nhớ cho biến đó. Do đó, với biến tham chiếu, kiểu phải là tên của một lớp cụ thể.
Ví dụ: Dog tuffy;
Trong trường hợp chúng ta khai báo một biến tham chiếu như tuffy, giá trị của nó sẽ không được xác định (null) cho đến khi một đối tượng thực sự được tạo và gán cho nó. Tình huống này chỉ đòi hỏi việc khai báo một biến tham chiếu mà không tạo ra đối tượng.
3.2. Khởi tạo đối tượng trong C#
Toán tử new thực hiện việc khởi tạo một lớp bằng cách phân bổ bộ nhớ cho đối tượng mới và trả về tham chiếu đến bộ nhớ đó. Ngoài ra, toán tử new còn gọi constructor của lớp.
Một ví dụ về cách khởi tạo đối tượng trong C#:
Kết quả xuất hiện như sau:
Giải thích: Trong lớp này, chúng ta có một constructor. Bạn có thể nhận diện constructor qua việc sử dụng cùng tên với tên lớp và không có kiểu giá trị trả về.
Trình biên dịch C# phân biệt constructor dựa trên số lượng và kiểu của các đối số. Constructor trong lớp Dog được gọi với 4 đối số. Dòng lệnh dưới đây khởi tạo giá trị cho 'tuffy', 'papillon', 5, 'white':
Dog tuffy = new Dog('tuffy', 'papillon', 5, 'white');
Kết quả sau khi thực thi lệnh trên xuất hiện như sau:
Trong bài viết này, Mytour đã giới thiệu về khái niệm lớp và đối tượng trong C#. Nếu bạn có bất kỳ thắc mắc hoặc câu hỏi nào, như là Nullable trong C# là gì?, hãy để lại ý kiến của bạn trong phần bình luận dưới bài viết. Mytour sẽ phản hồi và giải đáp mọi thắc mắc của bạn càng sớm càng tốt.