JAVATM- The Beginnings

Encapsulation

Let’s say you share your new Box class with all of your friends.

Listing 1 - Box.java (version 4)

public class Box

{

    int length;

    int width;

    int height;

    int volume;

    void computeVolume()

    {

        volume = length * width * height;

    }

}

One of your friends tells you that your class doesn’t work. They tried computing the volume of a box with dimensions 5 X 5 X 4 and got 101 instead of 100. You ask to see the main program, and find the following:

                Box b1 = new Box();

b1.length = 5;

b1.width = 5;

b1.height = 4;

b1.computeVolume();

b1.volume++;                                                // What’s this?

System.out.println(“volume = “ + b1.volume);         // Prints volume = 101

Your friend has modified the volume field in the Box object even though it was unnecessary. Not a problem, you point out the error, and after removing the erroneous statement, the program works fine. But what if there were millions of users of your class? You need a way to prevent errors like the one above from happening. This is done using encapsulation.

Section 1 - Encapsulation Defined

Copyright ©2017 by Ralph Lecessi Incorporated. All rights reserved.



Back to ralphlecessi.com