0% found this document useful (0 votes)
9 views

Access Modifiers

Access modified for CSE

Uploaded by

dipu0691
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Access Modifiers

Access modified for CSE

Uploaded by

dipu0691
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 11

ACCESS MODIFIERS IN JAVA

Introduction
The access modifiers in java specifies
accessibility (scope) of a data member, method,
constructor or class.

There are 4 types of java access modifiers:


private
default
protected
public
Private Access Modifier
 The private access modifier is accessible only within class.
 Example:
 class A
{
 private int data=40;
 private void msg(){System.out.println("Hello java");}
}
 public class B
{
 public static void main(String args[])
{
 A obj=new A();
 System.out.println(obj.data); //Compile Time Error
 obj.msg(); //Compile Time Error
 }
}
Private Constructor
 If you make any class constructor private, you cannot create
the instance of that class from outside the class.
 Example:
 class A
{
 private A(){} //private constructor
 void msg(){System.out.println("Hello java");}
}
 public class B
{
 public static void main(String args[])
{
 A obj=new A(); //Compile Time Error
 }
}
Note: A class cannot be private or protected
except nested class.
Default Access Modifier
 If you don't use any modifier, it is treated as default bydefault. The default
modifier is accessible only within package.
 //save by A.java
 package pack;
 class A
 {
 void msg(){System.out.println("Hello");}
 }
 //save by B.java
 package mypack;
 import pack.*;
 class B
 {
 public static void main(String args[]){
 A obj = new A();//Compile Time Error
 obj.msg();//Compile Time Error
 }
 }
 The scope of class A and its method msg() is default so it cannot be
accessed from outside the package.
Protected Access Modifier
The protected access modifier is accessible
within package and outside the package but
through inheritance only.

The protected access modifier can be applied on


the data member, method and constructor.

It can't be applied on the class.


 //save by A.java
 package pack;
 public class A
{
 protected void msg() {System.out.println("Hello");}
}
 //save by B.java
 package mypack;
 import pack.*;
 class B extends A
{
 public static void main(String args[])
{
 B obj = new B();
 obj.msg();
 }
} Output:Hello
Public Access Modifier
 The public access modifier is accessible everywhere. It has the widest
scope among all other modifiers.
 Example of public access modifier
 //save by A.java
 package pack;
 public class A
 {
 public void msg(){System.out.println("Hello");}
 }
 //save by B.java
 package mypack;
 import pack.*;
 class B
 {
 public static void main(String args[])
 {
 A obj = new A();
 obj.msg();
 }
 } Output:Hello
All Java Access Modifiers
Access Modifiers with Method
Overriding
 If you are overriding any method, overridden method (i.e. declared in
subclass) must not be more restrictive.
 Example:
 class A
 {
 protected void msg(){System.out.println("Hello java");}
 }
 public class B extends A
 {
 void msg(){System.out.println("Hello java");}//C.T.Error
 public static void main(String args[])
 {
 B obj=new B();
 obj.msg();
 }
 }
 The default modifier is more restrictive than protected. That is why there
is compile time error.

You might also like