Modal Box

Access Specifier in java

Java has four types of access specifiers and they are declared as following :

a. public :

 public int a;

b. protected :

 protected int b;

c. default (no specifier) :

 int c;

d. private :

 private int d;

All access modifiers can be understood with the following examples :

case 1 : Access variables within the class.

class A
{
  public int a=10;
  protected int b=20;
  int c=30;
  private int d=40;

void show() { System.out.println("a="+a+" b="+b+" c="+c+" d="+d); } }
class CheckMain { public static void main(String args[]) { A obj= new A(); obj.show(); // all variables may be printed as they are used within the class. } }

case 2 : Access variable in the subclass of the same package.

class A
{
public static int a=10;
protected static int b=20;
static int c=30;
private static int d=40;
}

 

class B extends A
{
public static void main(String args[])
{
System.out.println(“a=”+a);
System.out.println(“b=”+b);
System.out.println(“c=”+c);
//System.out.println(“d=”+d); uncommenting this line will give error..
} //..as private variable cant be used here.
}

case 3 : Access variable in the non-subclass of the same package.

class A
{
public int a=10;
protected int b=20;
int c=30;
private int d=40;
}

 

class B
{
public static void main(String args[])
{
A obj= new A(); // need to create objects to access properties of another class without inheritance.
System.out.println(“a=”+obj.a);
System.out.println(“b=”+obj.b);
System.out.println(“c=”+obj.c);
//System.out.println(“d=”+obj.d); uncommenting this line will give error as private variable cant be used here.
}
}

case 4 : Access variable in the subclass of a different package.

package pkg1;
class A
{
  public static int a=10;
  protected static int b=20;
  static int c=30;
  private static int d=40;
}

package pkg2; import pkg1.*; class B extends A { public static void main(String args[]) { System.out.println("a="+a); System.out.println("b="+b); //System.out.println("c="+c); uncommenting this line will give error as default variable can not be accessed outside package. //System.out.println("d="+d); uncommenting this line will give error as private variable is out of scope } }

case 5 : Access variable in the subclass of a different package.

package pkg1;
class A
{
  public int a=10;
  protected int b=20;
  int c=30;
  private int d=40;
}

package pkg2; import pkg1.*; class B { public static void main(String args[]) { A obj= new A(); // need to create objects to access properties of another class without inheritance. System.out.println("a="+obj.a); // only public variable may be accessed here. //System.out.println("b="+obj.b); //System.out.println("c="+obj.c); //System.out.println("d="+obj.d); } }

Video/ C Introduction

Watch video in full size
Wordpress Social Share Plugin powered by Ultimatelysocial