|
1 | | -# More Learn |
| 1 | +# OOP consepts |
| 2 | + - ## The **core concepts** of OOP are indeed **14** :- |
| 3 | + - **Class** - Blueprint for creating objects, defining properties and methods. |
| 4 | + logseq.order-list-type:: number |
| 5 | + - Object - An instance of a class containing data and behavior. |
| 6 | + logseq.order-list-type:: number |
| 7 | + - **Encapsulation** - Bundling data and methods, restricting direct access to an object's internal state. |
| 8 | + logseq.order-list-type:: number |
| 9 | + - **Abstraction** - Hiding complex implementation details and exposing only essential features. |
| 10 | + logseq.order-list-type:: number |
| 11 | + - **Inheritance** - Mechanism by which one class derives properties and behaviors from another. |
| 12 | + logseq.order-list-type:: number |
| 13 | + - **Polymorphism** - Ability for objects of different types to be treated as instances of a common superclass. |
| 14 | + logseq.order-list-type:: number |
| 15 | + - **Constructor** - Special method for initializing objects when created. |
| 16 | + logseq.order-list-type:: number |
| 17 | + - **Destructors** - Method for cleaning up when an object is destroyed or goes out of scope. |
| 18 | + logseq.order-list-type:: number |
| 19 | + - **Composition** - Creating complex objects by combining simpler objects, a "has-a" relationship. |
| 20 | + logseq.order-list-type:: number |
| 21 | + - **Interface** - Defines a contract that classes must follow, without providing implementation. |
| 22 | + logseq.order-list-type:: number |
| 23 | + - **Method Overloading** - Defining multiple methods with the same name but different parameters. |
| 24 | + logseq.order-list-type:: number |
| 25 | + - **Method Overriding** - Redefining a method in a subclass to change its behavior. |
| 26 | + logseq.order-list-type:: number |
| 27 | + - **Static Methods and Class Methods** - Methods that belong to the class rather than instances. |
| 28 | + logseq.order-list-type:: number |
| 29 | + - **Dynamic Binding (Late Binding)** - Resolving method calls at runtime based on the object type. |
| 30 | + logseq.order-list-type:: number |
| 31 | + - |
| 32 | + - ### But **additional related concepts** or **design patterns** that can supplement or extend OOP are:- |
| 33 | + - **Delegation** - One object handing over responsibilities to another. |
| 34 | + - **Mixin** - A class that provides functionality to other classes without being a parent class. |
| 35 | + - **Abstract Classes** - Classes that cannot be instantiated and may contain abstract methods. |
| 36 | + - **Loose Coupling and High Cohesion** - Reducing dependencies between components and ensuring focused class responsibilities |
| 37 | + - **Factory Pattern**: Creating objects without specifying the exact class of object to be created. |
| 38 | + - **Observer Pattern**: Notifying multiple objects about state changes in another object. |
| 39 | + - **Singleton Pattern**: Ensuring a class has only one instance and providing a global point of access. |
| 40 | +- |
| 41 | +- # More Learn |
2 | 42 | - Explore the following links for valuable resources, communities, and tools to enhance your skills: |
3 | 43 | - |
4 | 44 | - ## Github & Webs |
|
0 commit comments