Object-Oriented Programming

Object-Oriented Programming is a programming paradigm that states how a program should use programming constructs, in its case with the use of objects. OOP Languages often have many more data types than Procedural Languages, which often just have the core data types and structs, a type little OOP Languages have.

OOP promotes the use of modular parts, usually classes, to seperate program logic and data. Often this doesn't happen quite to plan and cyclic dependencies are made or there isn't a clear divide between logic and data, an argument pro-Procedural programmers often take.

Examples of OOP languages