Software Engineering ยท Architecture
Bundling data with the methods that operate on it, and blocking other code from reaching in and changing that data directly.
Mental model: Like a thermostat โ you can set a target temperature, but you can't reach in and rewire it.
Example: A BankAccount class that only exposes deposit() and withdraw(), keeping the balance field private so nothing can set it directly.
In practice: Most OOP languages enforce this with access modifiers like private/public, but the same discipline applies to any module in any language via what you choose to export.