Object Oriented Design

Since you probably don't know, you can write code with object oriented design, functional design, or procedural design. I will be touching on the main principles of object oriented design, becuase its the only one I know. I thought about learning the others and then decided I had better things to do.

A Look Ahead

Terminology

Encapsulation, polymorphism, inheritance, and more!

Commenting

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Modularity

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Design Principles

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

  • class hierarchies
  • memory management
  • OO fundamentals
  • Modularity- build software from separate parts, it is a form of encapsulation.
  • Encapsulation- hiding implementation details, and grouping them together. This is a form of abstraction.
  • Abstraction- knowing what something does, without knowing how it does it.
  • Has classes, information hiding, inheritance, interface, and polymorphism.
  • Has classes, information hiding, inheritance, interface, and polymorphism.
  • class hierarchy Classification of object types, where objects can be related to each other by building off of one another. You could have an animal class, which would have many different sub-classes that were related (i.e rhinos, wolves, and dolphins), but had their own distinct characteristics. However, there would be some common thread amongst these, like eating, moving, making noises, etc.
  • polymorphism The idea that a single interface can handle multiple different inputs. For example, the + sign in Python can handle adding numbers together, but it can also add strings together. The ability to appear in many forms. In programming this refers to a program’s ability to handle different objects differently, depending not their class or data type.