Class Encapsulation and Object Encapsulation: An Empirical Study
Two schools of thought underpin the way OO programming languages support encapsulation. Object encapsulation ensures that private members are accessible only within a single object. Class encapsulation allows private members to be accessed by other objects of the same class. This paper describes an empirical investigation into the way encapsulation is used in practice in class encapsulation languages C# and Java. We find arbitrary and inconsistent programming practices and suggest that object encapsulation is more intuitive and provides OO design advantages.