Hướng đối tượng ngôn ngữ lập trình C#


    Hướng đối tượng ngôn ngữ lập trình C# cũng giống như các ngôn ngữ lập trình hướng đối tượng phổ biến hiện nay : Java, C++, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp, và Smalltalk, C# được thiết kế đáp ứng đẩy đủ các đặc điểm của một ngôn ngữ lập trình hướng đối tượng (Object-Oriented Programming). Việc hướng đối tượng (Object-Oriented Programming) của C# được xây dựng thông qua bốn đặc điểm chính: tính đóng gói (Encapsulation), tính kế thừa (Inheritance), tính đa hình (Polymorphism), tính trừu tượng (Abstraction).

Hướng đối tượng ngôn ngữ lập trình C# cũng giống như các ngôn ngữ lập trình hướng đối tượng phổ biến hiện nay : Java, C++, Python, PHP, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, Common Lisp, và Smalltalk, C# được thiết kế đáp ứng đẩy đủ các đặc điểm của một ngôn ngữ lập trình hướng đối tượng (Object-Oriented Programming). Việc hướng đối tượng (Object-Oriented Programming) của C# được xây dựng thông qua bốn đặc điểm chính: tính đóng gói (Encapsulation), tính kế thừa (Inheritance), tính đa hình (Polymorphism), tính trừu tượng (Abstraction).

    Hai khái niệm thường xuyên được sử dụng nhất và thường bị người mới bắt đầu tìm hiểu ngôn ngữ lập trình hay nhầm lẫn đó chính là lớp (Class) và đối tượng (Object). Chúng ta cần phải phân biệt rõ lớp (Class) và đối tượng (Object) như sau :

  • Class có thể hiểu đơn giản là một kiểu dữ liệu phức hợp do người lập trình tự định nghĩa.
  • Object có thể hiểu đơn giản là một vùng được cấp phát cho một biến, khi biến đó khai báo kiểu dữ liệu là Class đã định nghĩa.

    Mối quan hệ giữa Class và Object có thể tóm gọn : Class là kiểu dữ liệu của Object và Object chính là một thể hiện (instance) của Class. Khái niệm này được chính Microsoft đơn vị phát hành ngôn ngữ C# định nghĩa (classes describe the type of objects, while objects are usable instances of classes).

1.  Các đặc điểm chính của Hướng đối tượng ngôn ngữ lập trình C#.

        Tính đóng gói (Encapsulation): Được thể hiện thông qua việc cho phép truy xuất với các mức khác nhau tới các chủ thể của hướng đối tượng trong C# như lớp (class), interface, trường (field), thuộc tính (property), phương thức (method), hàm khời tạo ( Constructor), sự kiện (event),… Tính đóng gói được thể hiện trong ngôn ngữ lập trình C# thông qua các định danh truy xuất (Access Modifiers):  publish, internal, protected, private,… Xem chi tiết.

        Tính kế thừa (Inheritance): Đặc tính này cho phép một lớp có thể thừa hưởng những đặc tính, hành vi,… của một lớp khác đã sẵn có thông qua kế thừa. Theo đó những lớp cho phép đối tượng khác kế thừa thông thường gọi là lớp cha, ngược lại những lớp kế thừa lớp khác thường gọi là lớp con.   Lớp cha sẽ có quyền chia sẻ các đặc tính, hành vi nào đó cho lớp con. Lớp con sẽ có quyền thừa hưởng, mở rộng thêm hoặc viết lại các đặc tính, hành vi của lớp cha. Trong ngôn ngữ C#, chỉ cho phép đơn kế thừa tức là một lớp con chỉ được phép kế thừa duy nhất từ một lớp cha. Tính kế thừa trong C# được thể hiện qua các từ khóa như protected, private, sealed,… Xem chi tiết.

        Tính đa hình (Polymorphism): Tính đa hình cung cấp sự đa dạng về các hành vi, phương thức (methods) có cùng tên, nhưng khác nhau về tham số trong quá trình định nghĩa các lớp cha, lớp con của lập trình hướng đối tượng. Tính đa hình trong ngôn ngữ lập trình C# có 2 loại: tính đa hình khi chạy (Compile time polymorphism) và tính đa hình khi biên dịch (Runtime polymorphism). Tính đa hình trong C# được thể hiện qua các từ khóa như virtual, override, in, ref, out,… Xem chi tiết.

        Tính trừu tượng (Abstraction): Tính trừu tượng là khái niệm giúp chúng ta thiết kế ra các lớp, interface ở dạng phác thảo. Nghĩa là chúng ta chỉ cần xác định được các phương thức, thuộc tính,… của  lớp hoặc inteface đó dưới dạng bản thiết kế như : có những thành phần nào, bao nhiêu tham số, kiểu dữ liệu của tham số, kiểu dữ liệu trả về … mà không cần có những phần code thực thi chi tiết bên trong nó. Tính trừu tượng của ngôn ngữ lập trình C# được thể hiện qua các từ khóa : abstract, interface,… Xem chi tiết.

2. Class

Định nghĩa
Cú pháp
Các thành phần của class

Fields

Properties

Methods

Constructors

Finalizers

Events

Nested Classes

Indexers

Các loại class
Các từ khóa liên quan

3. Object

Định nghĩa
Cú pháp

4. Các thuật ngữ Hướng đối tượng ngôn ngữ lập trình C#

Constructors

Constants

Fields

Finalizers

Methods

Properties

Indexers

Operators

Events

Delegates

Classes

Interfaces

Structs

Enumerations

Generics

5. Các từ khóa liên quan Hướng đối tượng ngôn ngữ lập trình C#

namespace

class

sealed

partial

this

static

delegate

new

object

struct

publish

internal

protected

private

abstract

interface

virtual

overwrite

in

out

ref


Phản hồi

Phản hồi