concept of numbers (data type) and the actual number (object)
every bank account has its own balance, name, number
classes have things that we do
we interact with bank account objects
constructors are used to create an object of this type
intialize instance variables
the job of the constructor is to initialize the instance variables
we have blueprints for NEW KINDS of data types
we want to write code that manipulates bank accounts, so we need to make our own versions
declarations alloct the appropriate amount of memory + provides context + provides scope for the variable