OOP โ Paradigm to organize & structure data as Object
aka OOP, Object-Oriented-Programming, Object-Oriented
Objectโ
self-contained code with collection of properties, to model real-world/abstract features & relationships
Abstractionโ
(Paradigm) to ignore/hide Low-Level details to focus on implement
Encapsulationโ
(Paradigm) to pack properties & methods into component, to keep private and restrict access (unless expose via API)
Inheritanceโ
(Paradigm) to share properties & methods of parent class to child classes
Polymorphismโ
(Paradigm) Child class can overwrite inherit property/method
Prototypal Inheritanceโ
Link for all Object to their Prototype, to mimic Inheritance access to Method & props
"Classical" OOP Concepts ๐ญ๐ค
"Object-oriented programs are offered as alternatives to correct ones" - Edsger Dijkstra
Referencesโ
Javaโ clunky Boilerplate-heavy High-Level General-Purpose OOP Programming Language. inspire name for JSJSโ Multi-paradigm High-Level Prototypal Inheritance OOP Scripting Language for full stack Web DevC#โ Static Typed GP Modern-C-like OOP Language for .NET & UnityPrototypeโ Model blueprint Object to Delegate methods & properties, link via__proto__, to mimic "classical" OOP Inheritance[Functional Programming](functional-programming) \>\>\> [**_OOP_**](oop)โ
