Encapsulation is one of the fundamental principles of Object-Oriented Programming (OOP). It is the practice of hiding the internal state and requiring all interactions to be performed through methods.