OOPC++ là gì?

Bài viết này giới thiệu về Lập trình hướng đối tượng (OOP) trong C#. OOPs là một khái niệm của ngôn ngữ lập trình hiện đại cho phép lập trình viên tổ chức các thực thể và đối tượng. Bốn khái niệm chính của OOP là trừu tượng hóa, đóng gói, kế thừa và đa hình. Tại đây, hãy tìm hiểu cách triển khai các khái niệm OOP trong C# và. MẠNG LƯỚI.  

Tính năng OOP

Lập trình hướng đối tượng (OOP) là một mô hình lập trình trong đó các chương trình được tổ chức xung quanh các đối tượng và dữ liệu hơn là hành động và logic

OOP cho phép phân tách một vấn đề thành một số thực thể được gọi là đối tượng và sau đó xây dựng dữ liệu và chức năng xung quanh các đối tượng này.  

Một lớp là cốt lõi của bất kỳ ngôn ngữ lập trình hướng đối tượng hiện đại nào, chẳng hạn như C#

Trong các ngôn ngữ OOP, bắt buộc phải tạo một lớp để biểu diễn dữ liệu

Một lớp là một bản thiết kế của một đối tượng chứa các biến để lưu trữ dữ liệu và các hàm để thực hiện các thao tác trên dữ liệu

Một lớp sẽ không chiếm bất kỳ không gian bộ nhớ nào và do đó nó chỉ là một biểu diễn logic của dữ liệu

Để tạo một lớp, bạn chỉ cần sử dụng từ khóa "lớp" theo sau là tên lớp

class Employee  
{  
  
} 
  1. Phần mềm được chia thành một số đơn vị nhỏ gọi là đối tượng. Dữ liệu và chức năng được xây dựng xung quanh các đối tượng này
  2. Dữ liệu của các đối tượng chỉ có thể được truy cập bởi các chức năng được liên kết với đối tượng đó
  3. Các chức năng của một đối tượng có thể truy cập các chức năng của một đối tượng khác

Các đối tượng là các thực thể thời gian chạy cơ bản của một hệ thống hướng đối tượng. Chúng có thể đại diện cho một người, một địa điểm hoặc bất kỳ mục nào mà chương trình phải xử lý

"Một đối tượng là một gói phần mềm của các biến và phương thức liên quan. "

"Một đối tượng là một thể hiện của một lớp"

oops-in-csharp.jpg

Một lớp sẽ không chiếm bất kỳ không gian bộ nhớ nào. Do đó, để làm việc với dữ liệu được đại diện bởi lớp, bạn phải tạo một biến cho lớp, biến đó được gọi là một đối tượng

Khi một đối tượng được tạo bằng toán tử new, bộ nhớ được phân bổ cho lớp trong heap, đối tượng được gọi là một thể hiện và địa chỉ bắt đầu của nó sẽ được lưu trữ trong đối tượng trong bộ nhớ ngăn xếp

Khi một đối tượng được tạo mà không có toán tử new, bộ nhớ sẽ không được cấp phát trong heap, nói cách khác, một thể hiện sẽ không được tạo và đối tượng trong ngăn xếp chứa giá trị null

Khi một đối tượng chứa null, thì không thể truy cập các thành viên của lớp bằng đối tượng đó

class Employee  
{  
  
}

Cú pháp tạo đối tượng của lớp Nhân viên

Employee objEmp = new Employee();  

Tất cả các ngôn ngữ lập trình hỗ trợ Lập trình hướng đối tượng sẽ hỗ trợ ba khái niệm chính này,

  1. đóng gói
  2. Di sản
  3. đa hình

trừu tượng

Trừu tượng là "Để đại diện cho tính năng thiết yếu mà không đại diện cho các chi tiết nền. "

Tính trừu tượng cho phép bạn tập trung vào những gì đối tượng làm thay vì cách nó thực hiện

Tính trừu tượng cung cấp cho bạn một cái nhìn tổng quát về các lớp hoặc đối tượng của bạn bằng cách cung cấp thông tin liên quan

Trừu tượng hóa là quá trình ẩn phong cách làm việc của một đối tượng và hiển thị thông tin của một đối tượng một cách dễ hiểu

Ví dụ trong thế giới thực về sự trừu tượng

Giả sử bạn có một đối tượng Điện thoại di động

Giả sử bạn có 3 điện thoại di động như sau

Nokia 1400 (Tính năng. Gọi điện, SMS)
Nokia 2700 (Tính năng. Gọi điện, SMS, Đài FM, MP3, Máy ảnh)
Black Berry (Tính năng. Gọi điện, SMS, Đài FM, MP3, Máy ảnh, Quay video, Đọc e-mail)

Thông tin trừu tượng (thông tin cần thiết và phổ biến) đối với đối tượng "Điện thoại di động" là nó thực hiện cuộc gọi đến bất kỳ số nào và có thể gửi tin nhắn SMS

Vì vậy, đối với một đối tượng điện thoại di động, bạn sẽ có lớp trừu tượng như sau,

abstract class MobilePhone {  
    public void Calling();  
    public void SendSMS();  
}  
public class Nokia1400: MobilePhone {}  
public class Nokia2700: MobilePhone {  
    public void FMRadio();  
    public void MP3();  
    public void Camera();  
}  
public class BlackBerry: MobilePhone {  
    public void FMRadio();  
    public void MP3();  
    public void Camera();  
    public void Recording();  
    public void ReadAndSendEmails();  
}

Trừu tượng hóa có nghĩa là đặt tất cả các biến và phương thức vào một lớp cần thiết

Ví dụ. Lớp trừu tượng và phương thức trừu tượng

Trừu tượng là một điều phổ biến

Thí dụ

Nếu ai đó trong trường đại học của bạn yêu cầu bạn điền vào một mẫu đơn đăng ký, bạn sẽ cung cấp thông tin chi tiết của mình, như tên, địa chỉ, ngày sinh, học kỳ nào, tỷ lệ phần trăm bạn có, v.v.

Nếu một bác sĩ nào đó đưa cho bạn một tờ đơn để điền thông tin chi tiết, bạn sẽ cung cấp các thông tin chi tiết, như tên, địa chỉ, ngày sinh, nhóm máu, chiều cao và cân nặng

Xem trong ví dụ trước điểm chung là gì?

Tuổi, tên và địa chỉ, để bạn có thể tạo một lớp bao gồm dữ liệu chung. Đó được gọi là một lớp trừu tượng

Lớp đó chưa hoàn thành và nó có thể được kế thừa bởi các lớp khác

đóng gói

Đóng gói một thành viên dữ liệu và một phương thức lại với nhau thành một đơn vị (hay nói cách khác là lớp) được gọi là Đóng gói

Đóng gói giống như bao bọc trong một viên nang. Tức là đóng gói các thao tác liên quan và dữ liệu liên quan đến một đối tượng vào đối tượng đó

Đóng gói giống như chiếc túi của bạn, trong đó bạn có thể đựng bút, sách, v.v. Nó có nghĩa đây là tài sản đóng gói các thành viên và chức năng

class Bag {  
    book;  
    pen;  
    ReadBook();  
} 

Đóng gói có nghĩa là che giấu các chi tiết bên trong của một đối tượng, nói cách khác là cách một đối tượng thực hiện một điều gì đó

Đóng gói ngăn không cho khách hàng nhìn thấy chế độ xem bên trong của nó, nơi hành vi trừu tượng hóa được triển khai

Đóng gói là một kỹ thuật được sử dụng để bảo vệ thông tin trong một đối tượng khỏi một đối tượng khác

Ẩn dữ liệu để bảo mật, chẳng hạn như đặt các biến ở chế độ riêng tư và hiển thị thuộc tính để truy cập vào dữ liệu riêng tư sẽ được công khai.  

Vì vậy, khi bạn truy cập thuộc tính, bạn có thể xác thực dữ liệu và đặt nó

ví dụ 1

class Demo {  
    private int _mark;  
    public int Mark {  
        get {  
            return _mark;  
        }  
        set {  
            if (_mark > 0) _mark = value;  
            else _mark = 0;  
        }  
    }  
}

Ví dụ về đóng gói trong thế giới thực

Hãy lấy Điện thoại Di động và Nhà sản xuất Điện thoại Di động làm ví dụ

Giả sử bạn là Nhà sản xuất Điện thoại Di động và bạn đã thiết kế và phát triển một thiết kế Điện thoại Di động (một lớp). Giờ đây, bằng cách sử dụng máy móc, bạn đang sản xuất Điện thoại di động (đồ vật) để bán, khi bạn bán Điện thoại di động của mình, người dùng chỉ học cách sử dụng Điện thoại di động chứ không học cách Điện thoại di động hoạt động

Điều này có nghĩa là bạn đang tạo lớp với các chức năng và với các đối tượng (viên nang) mà bạn đang cung cấp chức năng của lớp của mình bởi đối tượng đó và không có sự can thiệp vào lớp ban đầu

ví dụ 2

hoạt động truyền hình

Nó được đóng gói bằng một cái nắp và chúng ta có thể điều khiển nó bằng điều khiển từ xa và không cần phải mở TV để chuyển kênh.
Ở đây mọi thứ đều riêng tư ngoại trừ điều khiển từ xa, để bất kỳ ai cũng có thể truy cập điều khiển từ xa để thao tác và thay đổi mọi thứ trong TV.

Di sản

Khi một lớp bao gồm một thuộc tính của lớp khác, nó được gọi là tính kế thừa

Kế thừa là một quá trình tái sử dụng đối tượng

Ví dụ: một đứa trẻ bao gồm các thuộc tính của cha mẹ nó

public class ParentClass {  
    public ParentClass() {  
        Console.WriteLine("Parent Constructor.");  
    }  
    public void print() {  
        Console.WriteLine("I'm a Parent Class.");  
    }  
}  
public class ChildClass: ParentClass {  
    public ChildClass() {  
        Console.WriteLine("Child Constructor.");  
    }  
    public static void Main() {  
        ChildClass child = new ChildClass();  
        child.print();  
    }  
} 

đầu ra

Trình xây dựng gốc.
Trình tạo con.
Tôi là Phụ huynh của Lớp.

đa hình

Đa hình có nghĩa là một tên, nhiều hình thức

Một chức năng hoạt động trong các hình thức khác nhau

Nói cách khác, "Nhiều dạng của một đối tượng được gọi là Đa hình. "

Ví dụ thực tế về đa hình

ví dụ 1

Một giáo viên cư xử học sinh

Một giáo viên cư xử với đàn anh của mình

Ở đây giáo viên là một đối tượng nhưng thái độ khác nhau trong các tình huống khác nhau

ví dụ 2

Một người cư xử với con trai trong một ngôi nhà cùng lúc với người đó cư xử với một nhân viên trong một văn phòng

ví dụ 3

Điện thoại di động của bạn, một tên nhưng nhiều hình thức

  • như điện thoại
  • như máy ảnh
  • Là máy nghe nhạc mp3
  • như đài phát thanh

Để đọc chi tiết về Đa hình, nhấp vào liên kết sau. đa hình trong. Mạng lưới

Sự khác biệt giữa Trừu tượng hóa và Đóng gói

Trừu tượngEncapsulation1. Trừu tượng hóa giải quyết vấn đề ở mức thiết kế. 1. Đóng gói giải quyết vấn đề ở cấp độ thực hiện. 2. Trừu tượng ẩn dữ liệu không mong muốn và cung cấp dữ liệu có liên quan. 2. Đóng gói có nghĩa là ẩn mã và dữ liệu vào một đơn vị duy nhất để bảo vệ dữ liệu khỏi thế giới bên ngoài. 3. Tính trừu tượng cho phép bạn tập trung vào những gì đối tượng làm thay vì cách nó thực hiện3. Đóng gói có nghĩa là che giấu các chi tiết hoặc cơ chế bên trong về cách thức một đối tượng thực hiện điều gì đó. 4. trừu tượng. Bố cục bên ngoài, được sử dụng về mặt thiết kế.
Ví dụ.
Phần bên ngoài của Điện thoại di động, chẳng hạn như có màn hình hiển thị và các nút trên bàn phím để quay số.

4. Đóng gói- Bố cục bên trong, được sử dụng về mặt triển khai

Ví dụ. các chi tiết bên trong của Điện thoại di động, cách nút bàn phím và màn hình hiển thị được kết nối với nhau bằng mạch điện

Cách dễ dàng hơn để hiểu trừu tượng và đóng gói như sau

Ví dụ thực tế

Sử dụng ví dụ về Điện thoại di động

Bạn có Điện thoại di động, bạn có thể quay số bằng các nút trên bàn phím. Bạn thậm chí không biết chúng hoạt động như thế nào trong nội bộ. Đây được gọi là Trừu tượng hóa. Bạn chỉ có thông tin cần thiết để quay số. Nhưng không hoạt động nội bộ của điện thoại di động

Nhưng làm thế nào để Điện thoại di động hoạt động nội bộ?

Tóm lược

"Việc đóng gói được thực hiện bằng cách sử dụng các lớp. Giữ dữ liệu và phương thức truy cập dữ liệu đó vào một đơn vị. "

"Trừu tượng hóa được thực hiện bằng Giao diện. Chỉ cung cấp thông tin trừu tượng về những gì nó có thể làm mà không chỉ định chi tiết. "

"Việc ẩn thông tin/dữ liệu được thực hiện bằng cách sử dụng các công cụ sửa đổi bằng cách giữ các biến đối tượng ở chế độ riêng tư hoặc được bảo vệ. "

OOP có tồn tại trong C không?

C không phải là ngôn ngữ hướng đối tượng . C là ngôn ngữ mệnh lệnh, mục đích chung, hỗ trợ lập trình có cấu trúc. Vì C không hướng đối tượng nên C++ ra đời để có tính năng OOP và OOP là một mô hình ngôn ngữ lập trình được tổ chức xung quanh các đối tượng.

C có chức năng hay OOP không?

C không có OOP tích hợp sẵn , vì vậy về cơ bản mọi thứ đều là một hàm - ngay cả main cũng là một hàm, mặc dù giá trị trả về dường như hiếm khi được sử dụng.