My understanding and my experience on programing paradigm OOP. Capturing my thoughts in my own words is the real goal here and will update this ideas further more as time passes.

Remembering or memorizing all this concepts will not make anyone good at OOP Design or programming in general.

The application of concepts and pure problem solving and building the intuition which takes real world OOP design that users use or building Enterprise software gives you this skill.

There are many OOP Design and programming challenges on GitHub, which can be sued to gauge your level of understanding/application of the concepts which are much better approach for learning OOP Design.

OOP Design is not favored in the indie development, especially in systems programmers, Graphic Programming, and Game Engines. lot of developers do use multi-paradigm programming languages like C++ for its performance and better tool chain than c, But never use OOP paradigm. Mostly Enterprise software companies favor them.

OOP Paradigm in my experience used for governess and maintainability of code in software teams.

OOP Paradigm does not make your software better does not give you many advantages compare to other paradigm, You can still build really good software without the OOP-paradigm.

OOP Paradigm is usually used in Enterprise companies and al big-tech companies uses them. The real advantage is in maintains of code.

How did i learned?

I did lot of hands, and work experience i gathered from real code bases for multiple companies.

Lot of this definitions of each concepts are useful in interviews, Helps in better communication with peers.

Hands on first to build intuit understanding, than reading up the definition for communication.

AI with OOP, OOP helps in building the software architecture faster than any paradigm, in-fact i think it is designed and improvised in a way to build the software architecture and governance now. I have seen many companies use them to assign responsibilities

Books, Software Industry usually favor pragmatic books over academic books. Head first Design Patterns and Head First OOAD some uncle bob books are enough.

OOP

usually, OOP paradigm requires understanding of foundational pilers they say it.

But this ideas are more of building blocks of OOP paradigm.

First, 4 - pilers OOP.

This ideas are developed by many researchers in programming computer science area. Trying to build a dynamic configurable software that can change its behavior on runtime with Strongly typed system for safety.

Encapsulation

Protects data from direct access.

protection is from other object directly accessing it, the idea extends further with a new concept called access modifiers. Provides a keywords to protect your class/object.

getters and setters is something another ideas which helps Encapsulation.

Inheritance

Reuses code form existing classes.

Polymorphism

Allows the same method to behave differently.

Abstraction

Hides unnecessary details.

two more core ideas of paradigm.

Class

Object

Relationships of OOOP

Association Aggregation

Composition

Inheritance

OOP Principles

SOLID

Design Patterns