Access Specifier In C++ or Java

Posted by Unknown
Definition :

- Access Specifiers (also known as Visibility Specifiers ) regulate access to classes, fields and methods in Java.These Specifiers determine whether a field or method in a class, can be used or invoked by another method in another class or sub-class. Access Specifiers can be used to restrict access. Access Specifiers are an integral part of object-oriented programming.

Types Of Access Specifiers :

we have four Access Specifiers and they are listed below.

1. public
2. private
3. protected
4. default(no specifier)

We look at these Access Specifiers in more detail.



public specifiers :

Public Specifiers achieves the highest level of accessibility. Classes, methods, and fields declared as public can be accessed from any class in the Java program, whether these classes are in the same package or in another package.

Example :

  1. public class Demo {  // public class  
  2. public x, y, size;   // public instance variables  
  3. }  

private specifiers :

Private Specifiers achieves the lowest level of accessibility.private methods and fields can only be accessed within the same class to which the methods and fields belong. private methods and fields are not visible within subclasses and are not inherited by subclasses. So, the private access specifier is opposite to the public access specifier. Using Private Specifier we can achieve encapsulation and hide data from the outside world.

Example :

  1. public class Demo {   // public class  
  2. private double x, y;   // private (encapsulated) instance variables  
  3.   
  4. public set(int x, int y) {  // setting values of private fields  
  5. this.x = x;  
  6. this.y = y;  
  7. }  
  8.   
  9. public get() {  // setting values of private fields  
  10. return Point(x, y);  
  11. }  
  12. }  

protected specifiers :

Methods and fields declared as protected can only be accessed by the subclasses in other package or any class within the package of the protected members' class. The protected access specifier cannot be applied to class and interfaces.

default(no specifier):

When you don't set access specifier for the element, it will follow the default accessibility level. There is no default specifier keyword. Classes, variables, and methods can be default accessed.Using default specifier we can access class, method, or field which belongs to same package,but not from outside this package.

Example :

  1. class Demo  
  2. {  
  3. int i; (Default)  
  4. }  

Real Time Example :

2 comments: