Skip to content

Commit

Permalink
Merge branch 'main' into create-pr-action/update-collections-0
Browse files Browse the repository at this point in the history
  • Loading branch information
kenyonj authored Nov 6, 2023
2 parents 68d1b0e + c4caacc commit 21cb073
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions topics/oop/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
aliases: object-oriented-programming, object-oriented-design
created_by: MIT, Alan Kay
display_name: Object-oriented programming (OOP)
released: 1960
short_description: Object-oriented programming is a programming paradigm based on the concept of objects fundamental to many programming languages.
topic: oop
wikipedia_url: https://en.wikipedia.org/wiki/Object-oriented_programming
related: procedural-programming, open-closed-principle, inheritance, polymorphism, orm, functional-programming, event-driven-programming
---
**Object-oriented programming** (**OOP**) is a programming paradigm based on the concept of objects fundamental to many programming languages, including [Java](https://github.com/topics/java) and [C++](https://github.com/topics/cpp). OOP can be devided in two sub types: class-based (or "classical") and prototype-based OOP (found in [JavaScript](https://github.com/topics/javascript), for example).

Object-oriented programming has several advantages over procedural programming:
* OOP provides a clear structure for the programs
* OOP helps to keep the code DRY "Don't Repeat Yourself", and makes the code easier to maintain, modify and debug
* Logic can be abstracted, encapsulated, composed, inherited and decoupled

0 comments on commit 21cb073

Please sign in to comment.