Skip to main content

OOP Concepts and Definitions

Core Principles of Object-Oriented Programming​

1. Encapsulation​

Definition: Bundling data (attributes) and methods (functions) that operate on that data into a single unit (class)

Key Aspects:

  • Data hiding (restricting direct access to some components)
  • Exposing only necessary interfaces
  • Protecting object integrity by controlling access

2. Abstraction​

Definition: Showing only essential features while hiding implementation details
Key Aspects:

  • Simplifying complex reality by modeling classes
  • Focusing on what an object does rather than how
  • Creating simple interfaces for complex operations

3. Inheritance​

Definition: Creating new classes (derived/child) from existing ones (base/parent)
Key Aspects:

  • Code reusability
  • Establishing "is-a" relationships
  • Single vs. multiple inheritance (language-dependent)
  • Method overriding (changing inherited behavior)

4. Polymorphism​

Definition: Ability of objects to take on many forms

Types:

  • Compile-time/Static: Method overloading (same name, different parameters)
  • Runtime/Dynamic: Method overriding (same signature, different implementation)
    Key Aspects:
  • Interface-based programming
  • "Single interface, multiple implementations"

Key OOP Terminology​

Class​

  • Blueprint/template for creating objects
  • Defines attributes (data) and methods (behavior)

Object​

  • Instance of a class
  • Has state (current values of attributes), behavior (methods), and identity

Method​

  • Function defined within a class
  • Operates on object's data

Attribute/Property​

  • Data/characteristics associated with an object

Constructor​

  • Special method called when object is created
  • Initializes object's state

Access Modifiers​

  • Control visibility/accessibility of class members
  • Common levels (specifics vary by language):
    • Public: Accessible everywhere
    • Protected: Accessible within class and subclasses
    • Private: Accessible only within class

Advanced OOP Concepts​

Association​

  • Relationship between objects where one object uses another
  • Can be:
    • Aggregation: "Has-a" relationship (weak ownership)
    • Composition: Strong "part-of" relationship (lifecycle dependency)

Interface​

  • Contract defining what methods a class must implement
  • Pure abstraction (no implementation)

Abstract Class​

  • Class that cannot be instantiated
  • Contains abstract methods (no implementation) and/or concrete methods

Coupling & Cohesion​

  • Coupling: Degree of interdependence between classes/modules (low is better)
  • Cohesion: How closely related responsibilities of a class are (high is better)