Access modifier is a reserve keyword or we can say visibility controls which is used to restrict access.We can use these access modifier to determine whether a fields or methods in a class ,can be called or used by another class or sub class or not.That means these access modifiers can prevent unauthorized updation or execution of fields and methods of the particular object.
BY using public you can access the data anywhere means within the class or outside the class.We can declare the variable in one class and use these variable in other class.
By using private access modifier we cannot access that variable outside the class.We can access that data only inside the class from which we have declare. Function,variable which are declared private is not accessed by anywhere means any other class.Private access modifier is strict access modifier.Class or interface cannot be private. Private class members can only be accessed from inside the class .
The protected access modifier cannot be applied to class or interface like private access modifier.Methods or fields can be declared protected but in the interface method and fields cannot be protected.
………..All access modifier definition is clear in above example…….
class a //base class
public int x; //x is the variable of public data type
private int y; //y is the variable of private means we cannot access this data type outside this class
protected int z; //z is the variable of protected data type
public void disp() //disp method is create inside the class a
x=5; //value pass to variable x
y=10; //value pass to variable y
z=20; //value pass to variable z
class b extends a //derived class inherits class a
public void show() //method
a ob1; // ob1 is the object of class a(base class)
ob1.x=101; //value given to variables
ob1.y=102; //error given because of private datatype
class first //class main
public static void main(String aa) //main static method
a ob1=new a(); //ob1 is the object of class a
b ob2=new b(); //ob2 is the object of class b
ob1.y=105; //error given because y is the private variable
ob2.y=108; //error because of y variable