This document provides an introduction to object-oriented programming concepts including objects, classes, encapsulation, inheritance, polymorphism, and Java as an example OOP language. Key concepts covered are that objects contain both data and methods that act on that data. Classes define types of objects that share behaviors and properties. Inheritance allows classes to extend existing classes. Polymorphism allows different classes to respond to the same messages in different ways.