What is encapsulation in Java?

What is encapsulation in Java?

What is encapsulation in Java?

    Requires Free Membership to View

    When you register, you'll begin receiving targeted emails from my team of award-winning writers. Our goal is to keep you informed on recent service-oriented architecture (SOA) and SOA-related topics such as integration, governance, Web services, Cloud and more.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchSOA.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchSOA.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

Java encapsulation is a programming concept that a language should support in order to object's state from its behavior. This is typically facilitated by means of hiding an object's data representing its state from modification by external components. Java offers four different "scope" realms--public, protected, private, and package--that can be used to selectively hide data constructs. The following example illustrates these:

package com.jeffhanson.test; // The public scope identifier makes this class available // to all external components public class MyClass { // The following field does not have a scope identifier // so it is "package" scope by default. This means that // only objects in the same package can access it. int aPackageScopedInt; // The following field has a "private" scope identifier. // This means that it can only be accessed by this class. int aPrivateScopedInt; // The following method has a "protected" scope identifier. // This means that it can only be accessed by this class, // classes that extend this class, and other classes in // the same package. protected int aProtectedMethod() { return 0; } }

This was first published in April 2003