Skip to content
This repository has been archived by the owner on Aug 23, 2024. It is now read-only.

Commit

Permalink
OOP Topic added
Browse files Browse the repository at this point in the history
  • Loading branch information
diegoborbadev committed Feb 21, 2024
1 parent 740e1d8 commit faf4a0a
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 0 deletions.
File renamed without changes.
1 change: 1 addition & 0 deletions Concepts/Object_Oriented_Programming/Encapsulation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TODO
1 change: 1 addition & 0 deletions Concepts/Object_Oriented_Programming/Inheritance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TODO
1 change: 1 addition & 0 deletions Concepts/Object_Oriented_Programming/Polymorphism.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TODO
18 changes: 18 additions & 0 deletions Concepts/Object_Oriented_Programming/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# What is Object Oriented Programming (OOP)?
*Object Oriented Programming* is a programming paradigm that organizes software design around data, or objects, rather than functions and logic, It is based on the concept of "objects", which can contain data, in the form of fields, and code, in the form of procedures. In *OOP*, data is encapsulated within objects, and objects are defined by their properties (attributes) and behaviors (methods).

*Object Oriented Programming* is based on the following principles:
- [*Encapsulation*](Encapsulation.md) - The concept of bundling the data and the methods that operate on the data into a single unit, called an object.
- [*Abstraction*](Abstraction.md) - The concept of hiding the complex implementation details and showing only the necessary features of the object.
- [*Inheritance*](Inheritance.md) - The concept of creating a new class from an existing class, where the new class inherits the properties and behaviors of the existing class.
- [*Polymorphism*](Polymorphism.md) - The concept of using a single type entity to represent different types in different scenarios.

# Benefits of OOP
Use of *Object Oriented Programming* has several benefits, including:
- **Modularity**: Encapsulation enables objects to be self-contained, making troubleshooting and collaborative development easier.
- **Reusability**: Code can be reused through inheritance, meaning a team does not have to write the same code multiple times.
- **Productivity**: Programmers can construct new programs quicker through the use of multiple libraries and reusable code.
- **Easily**:upgradable and scalable. Programmers can implement system functionalities independently.
- **Interface**:descriptions. Descriptions of external systems are simple, due to message passing techniques that are used for objects communication.
- **Security**: Using encapsulation and abstraction, complex code is hidden, software maintenance is easier and internet protocols are protected.
- **Flexibility**: Polymorphism enables a single function to adapt to the class it is placed in. Different objects can also pass through the same interface.

0 comments on commit faf4a0a

Please sign in to comment.