OOPS CheatSheet (Prime Coding) - 1
OOPS CheatSheet (Prime Coding) - 1
OOPS CHEATSHEET
Key Concepts
1. Class
Python:
class Animal:
PR
Java:
E
this.name = name;
this.species = species;
G
}
}
C++:
class Animal {
private:
std::string name;
std::string species;
public:
Animal(std::string name, std::string species) {
OOPS CHEATSHEET
Prime Coding 1
Prime Coding
this->name = name;
this->species = species;
}
};
2. Object
Python:
Java:
C++:
E
3. Encapsulation
D
Definition: Bundling data and methods that operate on the data within one
IN
Python:
G
class Example:
def __init__(self):
self.__private_var = 42 # private
self._protected_var = 84 # protected
self.public_var = 168 # public
Java:
OOPS CHEATSHEET
Prime Coding 2
Prime Coding
C++:
class Example {
private:
int privateVar = 42;
protected:
int protectedVar = 84;
public:
PR
4. Abstraction
E
Python:
O
class AbstractClass(ABC):
@abstractmethod
G
def abstract_method(self):
pass
class ConcreteClass(AbstractClass):
def abstract_method(self):
print("Implemented abstract method")
Java:
OOPS CHEATSHEET
Prime Coding 3
Prime Coding
C++:
class AbstractClass {
PR
public:
virtual void abstractMethod() = 0; // Pure virt
IM
ual function
};
E
public:
void abstractMethod() override {
O
<< std::endl;
}
IN
};
G
5. Inheritance
Definition: Forming new classes using classes that have already been
defined, supporting reusability.
Types:
Multiple Inheritance: One class inherits from more than one base
class (not supported in Java).
OOPS CHEATSHEET
Prime Coding 4
Prime Coding
Python:
class Parent:
def method1(self):
print("Parent method")
class Child(Parent):
def method2(self):
PR
print("Child method")
obj = Child()
IM
obj.method1()
obj.method2()
E
Java:
C
O
class Parent {
void method1() {
D
System.out.println("Parent method");
IN
}
}
G
OOPS CHEATSHEET
Prime Coding 5
Prime Coding
C++:
class Parent {
public:
void method1() {
std::cout << "Parent method" << std::endl;
}
};
};
Child obj;
E
obj.method1();
obj.method2();
C
O
6. Polymorphism
D
Types:
G
Python:
class Bird:
def sound(self):
print("Chirp")
OOPS CHEATSHEET
Prime Coding 6
Prime Coding
class Dog:
def sound(self):
print("Bark")
def make_sound(animal):
animal.sound()
make_sound(Bird())
make_sound(Dog())
Java:
PR
class Bird {
void sound() {
IM
System.out.println("Chirp");
}
}
E
C
class Dog {
void sound() {
O
System.out.println("Bark");
D
}
}
IN
animal.sound();
}
makeSound(new Bird());
makeSound(new Dog());
C++:
class Animal {
public:
OOPS CHEATSHEET
Prime Coding 7
Prime Coding
public:
void sound() override {
IM
animal->sound();
O
}
D
makeSound(new Bird());
IN
makeSound(new Dog());
G
Principles of OOP
1. DRY (Don't Repeat Yourself)
OOPS CHEATSHEET
Prime Coding 8
Prime Coding
3. SOLID Principles
1. Constructor
Python:
C
class Example:
O
self.value = value
IN
Java:
G
C++:
OOPS CHEATSHEET
Prime Coding 9
Prime Coding
class Example {
private:
int value;
public:
Example(int value) {
this->value = value;
}
};
2. Destructor
Python:
IM
class Example:
def __del__(self):
E
print("Destructor called")
C
Java:
O
e method
IN
System.out.println("Destructor called");
}
}
C++:
class Example {
public:
~Example() {
std::cout << "Destructor called" << std::en
dl;
OOPS CHEATSHEET
Prime Coding 10
Prime Coding
}
};
3. Method Overloading
Definition: Multiple methods with the same name but different parameters.
class Example:
def add(self, a, b, c=0):
return a + b + c
PR
Java:
IM
return a + b;
}
C
O
}
IN
}
G
C++:
class Example {
public:
int add(int a, int b) {
return a + b
int add(int a, int b, int c) {
return a + b + c;
}
};
OOPS CHEATSHEET
Prime Coding 11
Prime Coding
;
}
1. Method Overriding
Python:
class Parent:
def show(self):
PR
print("Parent method")
class Child(Parent):
IM
def show(self):
print("Child method")
E
Java:
C
class Parent {
O
void show() {
D
System.out.println("Parent method");
}
IN
}
G
C++:
OOPS CHEATSHEET
Prime Coding 12
Prime Coding
class Parent {
public:
virtual void show() {
std::cout << "Parent method" << std::endl;
}
};
}
};
IM
2. Super
class.
C
Python:
O
class Parent:
D
self.value = value
G
class Child(Parent):
def __init__(self, value, extra_value):
super().__init__(value)
self.extra_value = extra_value
Java:
class Parent {
int value;
Parent(int value) {
OOPS CHEATSHEET
Prime Coding 13
Prime Coding
this.value = value;
}
}
C++:
IM
class Parent {
protected:
E
int value;
C
public:
Parent(int value) {
O
this->value = value;
D
}
};
IN
private:
int extraValue;
public:
Child(int value, int extraValue) : Parent(valu
e) {
this->extraValue = extraValue;
}
};
OOPS CHEATSHEET
Prime Coding 14
Prime Coding
Python:
class Engine:
def start(self):
print("Engine started")
class Car:
def __init__(self):
PR
self.engine = Engine()
def start(self):
IM
self.engine.start()
E
Java:
C
class Engine {
O
void start() {
System.out.println("Engine started");
D
}
IN
}
G
class Car {
private Engine engine;
Car() {
this.engine = new Engine();
}
void start() {
engine.start();
OOPS CHEATSHEET
Prime Coding 15
Prime Coding
}
}
C++:
class Engine {
public:
void start() {
std::cout << "Engine started" << std::endl;
}
};
PR
class Car {
private:
IM
Engine engine;
public:
void start() {
E
engine.start();
C
}
};
O
D
2. Design Patterns
IN
3. UML Diagrams
OOPS CHEATSHEET
Prime Coding 16