Friday, July 20, 2012

Access Modifier

How many access modifier are their in java ?

There are 4 access modifiers
a) public - can be accessed from any Class outside or inside of the same package.
b) protected - can be accessed from inside the same package and outside of the other package in subclasses.
c) default or no access modifier – can be accessed from the inside of the package
d) private – can be accessed from the same class.

These 4 modifiers are applied to non-local variables and methods only.
There are only 2 modifiers which can be applied for Class declaration (default and public)
For better understanding, member level access is formulated as a table:
 
Access Modifiers Same class Same package Same package subclass other package subclass other package non subclass
public Yes Yes Yes Yes Yes
protected Yes Yes Yes Yes No
default Yes Yes Yes No No
private Yes No No No No

In the code below access modifiers are in red colour.

package com.fastlearned;


public class AccessModifierTest {
 
 
  public String pub_string = "public string";
  protected String pro_string = "protected string";
  String de_string = "default string";
  private String pri_string = "private string";
     /*
      * This is a public method which can be called from anywhere     
      */
  public void testPublicMethod()
  {
   System.out.println("Test public method ");
  }
  /*
      * This is a protected method which can be called from 
      * anywhere in this package or from a subclass of this class
      * outside the package    
      */
  protected void testProtectedMethod()
  {
   System.out.println("Test protected method ");
  }
  /*
      * This is a default method which can be called from 
      * anywhere in this package     
      */
  void testDefaultMethod()
  {
   System.out.println("Test default method ");
  }
  /*
      * This is a private method which can be called from 
      * this class only     
      */
  private void testPrivateMethod()
  {
   System.out.println("Test private method ");
  }
 

}



No comments:

Post a Comment