Which of the following best describes encapsulation in OOP?

Encapsulation, in the context of C#, refers to an object's ability to hide data and behavior that are not necessary to its user

Encapsulation in C# is implemented with different levels of access to object data that can be specified using the following access modifiers:

Public: Access to all code in the program
Private: Access to only members of the same class
Protected: Access to members of same class and its derived classes
Internal: Access to current assembly
Protected Internal: Access to current assembly and types derived from containing class