OOP consepts

The core concepts of OOP are indeed 14 :-

  • Class - Blueprint for creating objects, defining properties and methods. logseq.order-list-type:: number
  • Constructor - Special method for initializing objects when created. logseq.order-list-type:: number
  • Destructors - Method for cleaning up when an object is destroyed or goes out of scope. logseq.order-list-type:: number
  • Object - An instance of a class containing data and behavior. logseq.order-list-type:: number
  • Encapsulation - Bundling data and methods, restricting direct access to an object’s internal state. logseq.order-list-type:: number
  • Abstraction - Hiding complex implementation details and exposing only essential features. logseq.order-list-type:: number
  • Inheritance - Mechanism by which one class derives properties and behaviors from another. logseq.order-list-type:: number
  • Polymorphism - Ability for objects of different types to be treated as instances of a common superclass. logseq.order-list-type:: number
  • Composition - Creating complex objects by combining simpler objects, a “has-a” relationship. id:: 67e63024-2a0a-4a19-aff1-05ad33f056cf logseq.order-list-type:: number
  • Interface - Defines a contract that classes must follow, without providing implementation. logseq.order-list-type:: number
  • Method Overloading - Defining multiple methods with the same name but different parameters. logseq.order-list-type:: number
  • Method Overriding - Redefining a method in a subclass to change its behavior. logseq.order-list-type:: number
  • Static Methods and Class Methods - Methods that belong to the class rather than instances. logseq.order-list-type:: number
  • Dynamic Binding (Late Binding) - Resolving method calls at runtime based on the object type. logseq.order-list-type:: number
  • Delegation - One object handing over responsibilities to another.
  • Mixin - A class that provides functionality to other classes without being a parent class.
  • Abstract Classes - Classes that cannot be instantiated and may contain abstract methods.
  • Loose Coupling and High Cohesion - Reducing dependencies between components and ensuring focused class responsibilities
  • Factory Pattern - Creating objects without specifying the exact class of object to be created.
  • Observer Pattern - Notifying multiple objects about state changes in another object.
  • Singleton Pattern - Ensuring a class has only one instance and providing a global point of access.

Algorithms

Searching:

    1. Binary Search - efficient algorithm to find an element in a sorted array.
    1. Linear Search - check each element in list one by one until we find the target element.
    1. Depth First Search - explores as far as possible along each branch before backtracking.
    1. Breadth First Search - explores all the neighboring nodes at the present level
    1. Rabin-Karp Algorithm - string searching used to find a pattern within a larger text.
    1. Z Algorithm - string matching algorithm that provides efficient matching

Sorting:

    1. Insertion Sort - sorting algorithm that builds the final sorted array one item at a time.
    1. Heap Sort - comparison-based sorting algorithm that uses a binary heap data structure
    1. Selection Sort - simple comparison-based sorting algorithm.
    1. Merge Sort - divide-and-conquer sorting algorithm.
    1. Quick Sort - another divide-and-conquer sorting algorithm.
    1. Counting Sort - non-comparison-based sorting algorithm
    1. Bucket Sort - distribution-based sorting algorithm
    1. Bubble Sort - imple comparison-based sorting algorithm
    1. Radix Sort - non-comparative sorting algorithm
    1. Shell Sort - in-place comparison-based sorting algorithm
    1. Comb Sort - variation of Bubble Sort that improves on it by using a gap sequence.
    1. Pigeonhole Sort - comparison-based sorting algorithm
    1. Cycle Sort - non-comparative sorting algorithm

Graphs:

Arrays:

Tree:

Others:

Short fourmulas

Binary systemm

  • binary - every type of binary calculations

More Learn

  • Explore the following links for valuable resources, communities, and tools to enhance your skills:

Github & Webs