Extra References:
# Class: “template”/“blueprint” that is used to create objects. Basically, a class will consists of field, static field, method, static method and constructor.
# Object: built from template/blueprint and loaded in memory with required initial variables
# Instance: a unique copy of a Class that representing an Object. When a new instance of a class is created, the JVM will allocate a room of memory for that class instance.

class Student:
def __init__(self, name):
self.name = name
a = Student("Billie")
b = Student("Annie")

## a and b are same objects but a and b are different instances.