4 Tính chất của lập trình hướng đối tượng (OOP) trong C# bao gồm: Kế thừa (Inheritance), Đóng gói (Encapsulation), Đa hình (Polymorphism), và Trừu tượng (Abstraction). 1 số framework phổ biến dùng để phát triển C# như: .Net Framework, .Net Core, ASP.NET, Entity Framework, Xamarin, WPF (Windows Presentation Foundation)...

>> Xem bài viết kì trước để biết: Lập trình C#.Net là gì ? C# dùng để làm gì ?

Mục lục:

1. 4 tính chất lập trình hướng đối tượng OOP trong C# - Khái niệm, ví dụ minh họa

2. Các Framework nổi tiếng để phát triển ứng dụng với ngôn ngữ lập trình C#

 

1. 4 tính chất lập trình hướng đối tượng OOP trong C# - Khái niệm, ví dụ minh họa

4 tính chất của lập trình hướng đối tượng (OOP) trong C# bao gồm: Kế thừa (Inheritance), Đóng gói (Encapsulation), Đa hình (Polymorphism), và Trừu tượng (Abstraction). Dưới đây là mô tả, ví dụ minh họa và giải thích chi tiết cho mỗi tính chất:

  1. Tính kế thừa (Inheritance) trong C#

    • Khái niệm: Kế thừa cho phép bạn tạo một lớp mới dựa trên một lớp hiện có. Lớp mới này được gọi là lớp con (derived class) và kế thừa các thuộc tính và phương thức từ lớp cơ sở (base class).

    • Ví dụ:

    • Ví dụ Tính kế thừa (Inheritance) trong C#

    • Giải thích: Trong ví dụ này, lớp Dog kế thừa từ lớp Animal. Điều này cho phép Dog có được thuộc tính Name và phương thức Eat từ lớp Animal, và nó có thể bổ sung thêm phương thức riêng như Bark.

  2. Tính đóng gói (Encapsulation) trong C#

    • Khái niệm: Đóng gói là việc che giấu thông tin chi tiết và kiểm soát việc truy cập vào dữ liệu của lớp. Các trường dữ liệu thường được đặt là private và truy cập thông qua các phương thức công khai (public methods).

    • Ví dụ

    • Ví dụ  Tính đóng gói (Encapsulation) trong C#

    • Giải thích: Trong ví dụ này, trường balance được bảo vệ bằng mức truy cập private, nghĩa là nó không thể truy cập trực tiếp từ bên ngoài lớp. Thay vào đó, bạn sử dụng các phương thức Deposit, Withdraw, và GetBalance để tương tác với balance, giúp kiểm soát việc thay đổi dữ liệu.

  3. Tính đa hình (Polymorphism) trong C#

    • Khái niệm: Đa hình cho phép một đối tượng có thể thể hiện nhiều hình dạng khác nhau dựa trên lớp thực tế của nó. Điều này giúp sử dụng một giao diện thống nhất để thực hiện các hành vi khác nhau.

    • Ví dụ:

    • Ví dụ  Tính đa hình (Polymorphism) trong C#

    • Giải thích: Trong ví dụ này, shape1shape2 đều được khởi tạo với các lớp con khác nhau của Shape. Dù vậy, cả hai đối tượng vẫn có thể gọi phương thức Draw, nhưng phương thức được gọi phụ thuộc vào lớp thực tế của đối tượng.

  4. Tính trừu tượng (Abstraction) trong C#

    • Khái niệm: Trừu tượng cho phép bạn định nghĩa một khung làm việc chung cho các lớp con. Lớp trừu tượng (abstract class) hoặc giao diện (interface) đóng vai trò chính trong việc định nghĩa các phương thức và thuộc tính cơ bản.

    • Ví dụ:

    • Ví dụ  Tính đa hình (Polymorphism) trong C#

    • Giải thích: Trong ví dụ này, Shape là một lớp trừu tượng và có một phương thức trừu tượng Area mà các lớp con (CircleRectangle) phải triển khai. Điều này đảm bảo rằng mỗi lớp con có một cách riêng để tính diện tích, nhưng chúng đều tuân theo giao diện chung.

Các tính chất OOP giúp bạn tổ chức mã nguồn một cách có logic, dễ bảo trì và mở rộng, cũng như tạo ra mã nguồn linh hoạt và tái sử dụng.

2. Các Framework nổi tiếng để phát triển ứng dụng với ngôn ngữ lập trình C#

Ngôn ngữ lập trình C# có một số framework phổ biến được phát triển để giúp phát triển ứng dụng dễ dàng và nhanh chóng, và đa phần được phát triển bởi chính Microsoft. Dưới đây là một số framework C# quan trọng:

  1. .NET Framework:

    • .NET Framework là một framework phát triển bởi Microsoft, chủ yếu dành cho phát triển ứng dụng Windows.
    • Nó bao gồm một thư viện lớn các lớp và công cụ hỗ trợ để phát triển ứng dụng Windows, ứng dụng web ASP.NET, và ứng dụng di động Windows (Windows Forms, ASP.NET MVC, WPF, và nhiều công cụ khác).
    • .NET Framework đã dần dần được thay thế bởi .NET Core và sau này là .NET 5 và .NET 6.
    • .NET Framework
  2. .NET Core / .NET 5 / .NET 6:

    • .NET Core là một phiên bản đa nền tảng (cross-platform) của .NET Framework. Nó cho phép bạn phát triển ứng dụng không chỉ trên Windows mà còn trên Linux và macOS.
    • .NET Core đã tiến hóa thành .NET 5 và .NET 6, với nhiều tính năng và cải tiến.
    • .NET 5 và .NET 6 tập trung vào việc thống nhất .NET Core và .NET Framework thành một framework duy nhất với hỗ trợ đa nền tảng.
    • .Net Core
  3. ASP.NET:

    • ASP.NET là một framework được phát triển bởi Microsoft cho việc phát triển ứng dụng web.
    • ASP.NET bao gồm ASP.NET Web Forms, ASP.NET MVC, và ASP.NET Web API. Đây là các công nghệ cho phép bạn xây dựng các ứng dụng web động và RESTful.
    • ASP.NET Core là phiên bản đa nền tảng của ASP.NET, cho phép phát triển ứng dụng web trên nhiều hệ điều hành.
    • ASP.NET
  4. Entity Framework:

    • Entity Framework (EF) là một ORM (Object-Relational Mapping) framework cho phép bạn tương tác với cơ sở dữ liệu bằng cách sử dụng đối tượng và mã C# thay vì SQL truyền thống.
    • EF cung cấp các công cụ để tạo, đọc, cập nhật và xóa dữ liệu từ cơ sở dữ liệu một cách dễ dàng và hiệu quả.
  5. Xamarin:

    • Xamarin là một framework cho phép bạn phát triển ứng dụng di động đa nền tảng bằng C# và .NET. Bạn có thể sử dụng Xamarin để xây dựng ứng dụng cho Android và iOS từ một mã nguồn chung.
    • Xamarin
  6. WPF (Windows Presentation Foundation):

    • WPF là một framework cho phép bạn xây dựng ứng dụng Windows desktop với giao diện người dùng đa dạng và hấp dẫn.
    • Nó sử dụng XAML để mô tả giao diện người dùng và cho phép tạo ra các ứng dụng Windows đồ họa phong cách.
    • WPF (Windows Presentation Foundation)
  7. Blazor:

    • Blazor là một framework cho phép bạn xây dựng ứng dụng web động bằng C# và .NET, mà không cần sử dụng JavaScript.
    • Blazor Server sử dụng mã C# để tạo giao diện người dùng trên máy chủ, trong khi Blazor WebAssembly chạy mã C# trực tiếp trong trình duyệt.
    • Blazor
  8. NancyFX:

    • NancyFX là một lightweight, đơn giản và linh hoạt web framework cho C#. Nó tập trung vào việc phát triển ứng dụng web đơn giản và dễ dàng.
    • NancyFX
  9. Akka.NET:

    • Akka.NET là một framework cho phép phát triển ứng dụng đa luồng và phân tán dựa trên mô hình actor.
  10. SignalR:

    • SignalR là một framework cho phép phát triển ứng dụng thời gian thực với khả năng truyền tải dữ liệu trực tiếp từ máy chủ đến máy khách và ngược lại.
    • SignalR

Các framework C# giúp tăng năng suất và giảm thời gian phát triển ứng dụng, đồng thời cung cấp nền tảng cho việc xây dựng các loại ứng dụng khác nhau, từ ứng dụng web đến ứng dụng di động và desktop.

>> Khóa học lập trình C# Backend với .Net Core, Entity Framework