Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior.
Main Concepts
Encapsulation
Abstraction
Inheritance
Polymorphism
Other Concepts
Attributes: there is instance and class categories
Methods: functions defined inside the class
Class Methods: This should do something that has a relationship with the class, but usually, those are used to manipulate different structures of data to instantiate objects, like we have done with CSV.
Static Methods: Don’t have the self parameter reference. This should do something that has a relationship with the class, but not something that must be unique per instance.
Objects: are the instances of a class
Private Attributes: attributes that can’t be accessed directly _( _name )
Private Methods: methods that can’t be accessed directly _( _method() )
Abstract Classes: a kind of class template, blocks the creation of an instance of the class
Abstract Methods: a method that has a declaration but does not have an implementation