Object-oriented programming refers to the concept of using an abstract class to represent data and logic sequences. An object can represent a real object or a data model, and its methods define its external interface. Objects also communicate with other objects via well-defined interfaces, called messages. The concepts of data and logic belong together in larger applications. Processing should be done only in specific places and is separated from data. Using the principles of OOP ensures that your code remains modular and avoids spaghetti-code.
An event-driven application is built on an observer-subscribe model. Unlike a traditional program, event-driven applications can be developed in almost any programming language. Visual Basic is a good example of an event-driven language, because it provides a convenient integrated development environment and a wide range of built-in objects and controls. In contrast, Visual C++ is a great choice for building sophisticated applications that respond to a variety of events.