Access Modifiers in Java
Access Modifiers in Java
• Access modifiers
• Non-access modifiers.
Types of Java access modifiers
• Private: The access level of a private modifier
is only within the class. It cannot be accessed
from outside the class.
• Default: The access level of a default modifier
is only within the package. It cannot be
accessed from outside the package. If you do
not specify any access level, it will be the
default.
• Protected: The access level of a protected
modifier is within the package and outside the
package through child class. If you do not
make the child class, it cannot be accessed
from outside the package.
• Public: The access level of a public modifier is
everywhere. It can be accessed from within
the class, outside the class, within the package
and outside the package.
• There are many non-access modifiers, such as
static, abstract, synchronized, native, volatile,
transient.
Access within class within package outside outside
Modifier package by package
subclass only
Private Y N N N
Default Y Y N N
Protected Y Y Y N
Public Y Y Y Y
Private
• //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
• }
• }
• In the above example, the scope of class A and
its method msg() is default so it cannot be
accessed from outside the package.
Protected