|
1 | 1 | # OOP consepts |
2 | 2 | - ## The **core concepts** of OOP are indeed **14** :- |
3 | | - - **Class** - Blueprint for creating objects, defining properties and methods. |
| 3 | + - [[Class]] - Blueprint for creating objects, defining properties and methods. |
4 | 4 | logseq.order-list-type:: number |
5 | | - - Object - An instance of a class containing data and behavior. |
| 5 | + - [[Constructor]] - Special method for initializing objects when created. |
6 | 6 | logseq.order-list-type:: number |
7 | | - - **Encapsulation** - Bundling data and methods, restricting direct access to an object's internal state. |
| 7 | + - [[Destructors]] - Method for cleaning up when an object is destroyed or goes out of scope. |
8 | 8 | logseq.order-list-type:: number |
9 | | - - **Abstraction** - Hiding complex implementation details and exposing only essential features. |
| 9 | + - [[Object]] - An instance of a class containing data and behavior. |
10 | 10 | logseq.order-list-type:: number |
11 | | - - **Inheritance** - Mechanism by which one class derives properties and behaviors from another. |
| 11 | + - [[Encapsulation]] - Bundling data and methods, restricting direct access to an object's internal state. |
12 | 12 | logseq.order-list-type:: number |
13 | | - - **Polymorphism** - Ability for objects of different types to be treated as instances of a common superclass. |
| 13 | + - [[Abstraction]] - Hiding complex implementation details and exposing only essential features. |
14 | 14 | logseq.order-list-type:: number |
15 | | - - **Constructor** - Special method for initializing objects when created. |
| 15 | + - [[Inheritance]] - Mechanism by which one class derives properties and behaviors from another. |
16 | 16 | logseq.order-list-type:: number |
17 | | - - **Destructors** - Method for cleaning up when an object is destroyed or goes out of scope. |
| 17 | + - [[Polymorphism]] - Ability for objects of different types to be treated as instances of a common superclass. |
18 | 18 | logseq.order-list-type:: number |
19 | | - - **Composition** - Creating complex objects by combining simpler objects, a "has-a" relationship. |
| 19 | + - [[Composition]] - Creating complex objects by combining simpler objects, a "has-a" relationship. |
| 20 | + id:: 67e63024-2a0a-4a19-aff1-05ad33f056cf |
20 | 21 | logseq.order-list-type:: number |
21 | | - - **Interface** - Defines a contract that classes must follow, without providing implementation. |
| 22 | + - [[Interface]] - Defines a contract that classes must follow, without providing implementation. |
22 | 23 | logseq.order-list-type:: number |
23 | | - - **Method Overloading** - Defining multiple methods with the same name but different parameters. |
| 24 | + - [[Method Overloading]] - Defining multiple methods with the same name but different parameters. |
24 | 25 | logseq.order-list-type:: number |
25 | | - - **Method Overriding** - Redefining a method in a subclass to change its behavior. |
| 26 | + - [[Method Overriding]] - Redefining a method in a subclass to change its behavior. |
26 | 27 | logseq.order-list-type:: number |
27 | | - - **Static Methods and Class Methods** - Methods that belong to the class rather than instances. |
| 28 | + - [[Static Methods and Class Methods]] - Methods that belong to the class rather than instances. |
28 | 29 | logseq.order-list-type:: number |
29 | | - - **Dynamic Binding (Late Binding)** - Resolving method calls at runtime based on the object type. |
| 30 | + - [[Dynamic Binding (Late Binding)]] - Resolving method calls at runtime based on the object type. |
30 | 31 | logseq.order-list-type:: number |
31 | 32 | - |
32 | 33 | - ## **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. |
| 34 | + - [[Delegation]] - One object handing over responsibilities to another. |
| 35 | + - [[Mixin]] - A class that provides functionality to other classes without being a parent class. |
| 36 | + - [[Abstract Classes]] - Classes that cannot be instantiated and may contain abstract methods. |
| 37 | + - [[Loose Coupling and High Cohesion]] - Reducing dependencies between components and ensuring focused class responsibilities |
| 38 | + - [[Factory Pattern]] - Creating objects without specifying the exact class of object to be created. |
| 39 | + - [[Observer Pattern]] - Notifying multiple objects about state changes in another object. |
| 40 | + - [[Singleton Pattern]] - Ensuring a class has only one instance and providing a global point of access. |
40 | 41 | - |
41 | 42 | - # Algorithms |
42 | 43 | - ## Searching: |
|
117 | 118 | - 15) [[Zobrist Hashing]] - hashing technique used in computer games |
118 | 119 | - 16) [[FM-index]] - data structure used for efficient full-text searching |
119 | 120 | - 17) [[Circular buffer]] - works like a fixed-size queue |
120 | | - - 18) [[Hungarian / Kuhn–Munkres / Munkres Assignment-Algorithm]] - combinatorial optimization algorithm |
| 121 | + - 18) [[Hungarian - Kuhn–Munkres - Munkres Assignment-Algorithm]] - combinatorial optimization algorithm |
121 | 122 | - 19) [[Dekker's Algorithm]] - first algorithms to solve the mutual exclusion |
122 | 123 | - 20) [[Winged Edge]] - used to represent **polygonal meshes** |
123 | 124 | - 21) [[Burrows–Wheeler Transform]] - string transformation algorithm |
|
129 | 130 | - 27) [[Disjoint-set Data Structure]] - efficiently perform union and find operations |
130 | 131 | - 28)[[Bloom Filter]] - space-efficient probabilistic data structure used to test whether |
131 | 132 | - |
| 133 | +- # Short fourmulas |
| 134 | + - [[fibonacci]] - Short trick |
| 135 | + - [[palindrome]] - short method |
| 136 | + - |
| 137 | +- |
132 | 138 | - # More Learn |
133 | 139 | - Explore the following links for valuable resources, communities, and tools to enhance your skills: |
134 | 140 | - |
|
150 | 156 | - [System Design E-book](https://github.com/karanpratapsingh/system-design) |
151 | 157 | - [Coding Interview Preparation](https://github.com/jwasham/coding-interview-university) |
152 | 158 | - [SDE Interview Question](https://github.com/twowaits/SDE-Interview-Questions) |
153 | | - - |
154 | | - - |
155 | | - - |
156 | | - - |
| 159 | +- |
0 commit comments