1) bundling data with relevant functions to do with the data 2) a class is the blueprint for an object, it will contain atributes (variables), and methods (functions) that can be used to manipulate/set or retrive the atributes 3) an object is the instance of a class in memory, it can be treated as a variable 4) this is the creation of an object from a class, it will often contain an initilization function to allow for it to have starting values 5) inheritence is the concept of creating a subclass that contains the same methods and atributes as an existing object and more data, it is a derived class