Java: Information Hiding

Contributor Icon Contributed by yoperman Date Icon June 13, 2006  
Tag Icon Tagged: Java programming


Information hiding is a key feature of java. When declaring a variable or a method it can be one of four things: private, protected, or public or default. The way you specify the type is using one of the three keywords or none at all.

For example:

// Default
int i = 0;

//public
public int i = 0;

Public: When you declare a variable public it means that it can be accessed anywhere in the program. If you inherit from that class you would have access to all of the public variables.

Private: When a variable is private it cannot be seen anywhere except for the class is instantiated in. If you use a class you will not be able to see any private data.

Protected: If a variable is protected you only have package access (useful when developing libs). That means that you will only see the variable in the package that it is instantiated in and all its subclasses.

Default: Default package access is achieved when there is no specifier (private, public, or protected). Default package access means that the variable is available within the package that it is created in but not in the package subclasses. Basically you can think of it as a package private.

When creating variables within a method you can only specify one keyword (final). You cannot create public, private, or protected, or even default variables. When you create an Object within a method it is only available within the method it is created in.

If you have any questions e-mail me at staykovmarin@gmail.com

– Marin

Previous recipe | Next recipe |
 
  • QuoVadisNP
    On a scale of 1 to 10, I give this page a -1. One would expect a page for "Java Information Hiding" to actually talk about Information Hiding; what it is and what its advantages and disadvantages are. Instead, all this page says is "Information hiding is a key feature of Java." This page does manage to mention access modifiers and while access modifiers are certainly a part of information hiding this page fails miserable to actually tie access modifiers to the concept of Information Hiding making the mere mention of them, like the rest of this page, useless.
blog comments powered by Disqus