- vừa được xem lúc

Cơ bản hướng đối tượng trong C#

0 0 3

Người đăng: Trần Đức Trí

Theo Viblo Asia

  • Lập trình hướng đối tượng (OOP) là một phương pháp lập trình dựa trên việc sử dụng các "đối tượng" để phát triển phần mềm. Một đối tượng trong OOP thường bao gồm hai thành phần chính: tính chất (properties) và phương thức (methods). Tính chất mô tả trạng thái của đối tượng, trong khi phương thức xác định hành động mà đối tượng có thể thực hiện.

1. Đóng gói (Encapsulation)

  • Định nghĩa: Đóng gói là tính chất cho phép bảo vệ dữ liệu của đối tượng bằng cách giới hạn quyền truy cập. Dữ liệu và các phương thức thao tác với dữ liệu được gộp lại trong một lớp, và chỉ các phương thức công khai (public) được phép truy cập hoặc sửa đổi dữ liệu đó.
public class BankAccount
{ private double balance; // Biến riêng tư public void Deposit(double amount) // Phương thức công khai { if (amount > 0) { balance += amount; } } public double GetBalance() // Phương thức công khai { return balance; }
} 
  • Trong ví dụ này, biến balance được đóng gói và không thể truy cập trực tiếp từ bên ngoài lớp BankAccount. Người dùng chỉ có thể thực hiện các thao tác thông qua các phương thức Deposit và GetBalance.

2. Kế thừa (Inheritance)

  • Định nghĩa: Kế thừa cho phép tạo ra một lớp mới dựa trên một lớp đã có, giúp tái sử dụng mã và mở rộng chức năng của lớp cha mà không cần viết lại mã.
public class Animal
{ public void Eat() { Console.WriteLine("Animal is eating."); }
} public class Dog : Animal // Lớp Dog kế thừa từ lớp Animal
{ public void Bark() { Console.WriteLine("Dog is barking."); }
} 
  • Trong ví dụ này, lớp Dog kế thừa các phương thức từ lớp Animal và có thêm phương thức riêng Bark. Bạn có thể tạo một đối tượng Dog và sử dụng cả phương thức Eat từ lớp cha.

3. Đa hình (Polymorphism)

  • Định nghĩa: Đa hình cho phép các đối tượng thuộc các lớp khác nhau có thể được xử lý thông qua cùng một giao diện. Điều này giúp viết mã linh hoạt hơn.
public class Animal
{ public virtual void Speak() { Console.WriteLine("Animal speaks."); }
} public class Cat : Animal
{ public override void Speak() // Ghi đè phương thức Speak { Console.WriteLine("Cat meows."); }
} public class Dog : Animal
{ public override void Speak() // Ghi đè phương thức Speak { Console.WriteLine("Dog barks."); }
} public void MakeAnimalSpeak(Animal animal)
{ animal.Speak(); // Phương thức gọi
} 
  • Khi bạn gọi MakeAnimalSpeak với một đối tượng Dog hoặc Cat, phương thức Speak tương ứng sẽ được gọi. Điều này cho phép bạn viết mã linh hoạt và mở rộng.

4. Trừu tượng (Abstraction)

  • Định nghĩa: Trừu tượng cho phép bạn tạo ra các lớp hoặc giao diện mà chỉ định nghĩa các phương thức mà không cung cấp chi tiết cụ thể. Điều này giúp người dùng chỉ cần biết cách sử dụng mà không cần hiểu sâu về cách thực hiện.
public abstract class Shape // Lớp trừu tượng
{ public abstract double Area(); // Phương thức trừu tượng
} public class Circle : Shape
{ public double Radius { get; set; } public override double Area() { return Math.PI * Radius * Radius; // Cách tính diện tích hình tròn }
} public class Rectangle : Shape
{ public double Width { get; set; } public double Height { get; set; } public override double Area() { return Width * Height; // Cách tính diện tích hình chữ nhật }
} 
  • Trong ví dụ này, lớp Shape định nghĩa phương thức trừu tượng Area, và các lớp Circle và Rectangle cung cấp các chi tiết cụ thể để tính diện tích của từng hình dạng. Người dùng chỉ cần biết cách gọi phương thức Area mà không cần hiểu cách thực hiện bên trong.

5. Lý do xài OOP

  • Bốn tính chất cơ bản của lập trình hướng đối tượng (Đóng gói, Kế thừa, Đa hình và Trừu tượng) giúp lập trình viên xây dựng ứng dụng dễ bảo trì, mở rộng và linh hoạt hơn. Những tính chất này là nền tảng để phát triển phần mềm hiệu quả và tối ưu.

Bình luận

Bài viết tương tự

- vừa được xem lúc

4 đặc tính của lập trình hướng đối tượng (Object oriented program)

Lập trình hướng đối tượng quá quen thuộc rồi bạn nào học lập trình đều phải học, đi phỏng vấn cũng vậy hỏi suốt(chắc cái này tùy vào vị trí tuyển dụng chủ yếu junior chắc chắn sẽ hỏi).nó là nền tảng cho hầu hết các design pattern hiện nay.

0 0 46

- vừa được xem lúc

Khác nhau giữa abstract class và interface khi nào dùng chúng

Nhắc đến Interface và abstract class hãy nhớ 2 từ này khá clear rồi, Khi sử dụng Interface là bạn Implement còn sử dụng abstract class là bạn extend. . Interface:. .

0 0 41

- vừa được xem lúc

So sánh Interface và Abstract trong lập trình hướng đối tượng.

Tổng quan. Interface và Abstract class là 2 khái niệm cơ bản trong lập trình OOP.

0 0 63

- vừa được xem lúc

Áp Dụng Nguyên Tắc SOLID Trong Lập Trình

Giới Thiệu. 1. SOLID là gì. SOLID là viết tắt của 5 chữ cái đầu trong 5 nguyên tắc:.

0 0 37

- vừa được xem lúc

Kỹ thuật giải quyết bài toàn về policy và công thức tính toán động cho sản phẩm phần mềm

Dạo này tôi có một mối duyên rất tình cờ với việc làm các phần mềm thuộc lĩnh vực tài chính và ngân hàng. Một số bài toán trong lĩnh vực này làm tôi nhớ đến những ngày đầu làm việc với phần mềm Trinet

0 0 34

- vừa được xem lúc

Object Relational Mapping

Trong cách phát triển ứng dụng web hiện nay chắc hẳn các bạn đã quen với với từ khóa ORM(Object Relational Mapping). Khi mà thời đại của các framework ứng với các ngôn ngữ đang lên ngôi một cách mạnh

0 0 39