Skip to main content

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โ€‹

  1. Java โ†” clunky Boilerplate-heavy High-Level General-Purpose OOP Programming Language. inspire name for JS

  2. JS โ†” Multi-paradigm High-Level Prototypal Inheritance OOP Scripting Language for full stack Web Dev

  3. C# โ†” Static Typed GP Modern-C-like OOP Language for .NET & Unity

  4. Prototype โ†” Model blueprint Object to Delegate methods & properties, link via __proto__, to mimic "classical" OOP Inheritance

  5. [Functional Programming](functional-programming) \>\>\> [**_OOP_**](oop) โ†”


![image](@site/static/files/ESK4EkiXFjnwkUIEZhMnC0eqJJjFqwGWmyfXOXTKUEGrxryGAnYzUIQflrI9uQlWHzvwg1MrC9AiJYZcwaXnkGWGLbrw4QmvnE1YxhCWCvAw60bvKixM_1apZYVA8FJi.png)