Object-oriented programming (OOP) enhances the maintainability of large software systems by encapsulating data and behaviors within objects. This encapsulation ensures that data is protected from unintended modifications and can only be accessed through well-defined methods. By bundling related data and functions together within objects, OOP promotes a modular design, where each object represents a specific entity with its own attributes and behaviors. This modularity makes it easier to understand, manage, and maintain the code, as changes to one part of the system do not necessarily affect other parts. Inheritance allows new classes to extend existing ones, promoting code reuse and reducing redundancy. Polymorphism enables objects to be treated as instances of their parent class, providing flexibility in how methods are implemented and invoked. These principles collectively contribute to the creation of maintainable and scalable software systems, where individual components can be developed, tested, and updated independently. In contrast, procedural programming's reliance on global data and functions can make it challenging to manage and maintain large and complex systems.