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:
-
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ụ:
-
Giải thích: Trong ví dụ này, lớp
Dog
kế thừa từ lớpAnimal
. Điều này cho phépDog
có được thuộc tínhName
và phương thứcEat
từ lớpAnimal
, và nó có thể bổ sung thêm phương thức riêng nhưBark
.
-
-
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ụ:
-
Giải thích: Trong ví dụ này, trường
balance
được bảo vệ bằng mức truy cậpprivate
, 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ứcDeposit
,Withdraw
, vàGetBalance
để tương tác vớibalance
, giúp kiểm soát việc thay đổi dữ liệu.
-
-
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ụ:
-
Giải thích: Trong ví dụ này,
shape1
vàshape2
đều được khởi tạo với các lớp con khác nhau củaShape
. Dù vậy, cả hai đối tượng vẫn có thể gọi phương thứcDraw
, nhưng phương thức được gọi phụ thuộc vào lớp thực tế của đối tượng.
-
-
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ụ:
-
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ượngArea
mà các lớp con (Circle
vàRectangle
) 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:
-
.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 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.
-
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.
-
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ả.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
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