This repository has been archived by the owner on Aug 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
740e1d8
commit faf4a0a
Showing
5 changed files
with
21 additions
and
0 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TODO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TODO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
TODO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |