Access Specifiers Modifiers Java

March 9, 2011 | Java OOPs Concepts
Access Specifiers Modifiers are different. Specifier specifies access and modifier modifies access. A very confusing for a Beginner. Expalained Simple terms.

Java supports both specifiers and modifiers that can dictate the access. An access specifier can be applied to any identifier like variables, methods and classes but modifiers cannot be applied to every identifier, there are limitations. For example, the modifiers applied to variables cannot be used with classes and similarly with methods also. A full discussion of specifiers is given later.

Following list gives the details of access specifiers and modifiers that can be applied to classes, variables and methods.

Class Specifiers & Modifiers

Three modifiers exist that can be applied to classes. Modifier comes just before the class name.

Modifier Keyword

Meaning

abstract

Objects cannot be created

final

cannot be inherited

strictfp

Guarantees the same precision for floating-point values in the class irrespective of the OS on which the program is executed

The two access specifiers a class can accept are public or default. Default means the specifier is not mentioned at all.

Variable Specifiers & Modifiers

Four modifiers and four specifiers exist that can be applied to variables.

Modifier Keyword

Meaning

static

Also known as "class variable". No object is necessary to call

final

cannot be reassigned

transient

Not serialized

volatile

Value is more liable to change

All the [four access specifiers](give strictfp link in Access Specifiers & Access Modifiers of oops), Java supports, can be applied to variables - public, protected, default and private. If the specifier is not mentioned, it takes default access. A local variable must be default only.

Method Specifiers & Modifiers

Six modifiers exist that can be used with methods.

Modifier Keyword

Meaning

final

Subclass cannot override

abstract

No method body exists

native

Java method takes the help of underlying OS

static

Object is not necessary to call

synchronized

Used to lock the source and renders a thread-safe operaton

strictfp

Guarantees the same precision for floating-point values in the class irrespective of the OS on which the program is executed

All the four access specifiers, public, protected, default and private, can be applied to methods. If not mentioned any access specifier, JVM takes default access.

Access restrictions of all four access specifiers are discussed in Access Specifiers – Accessibility Permissions & Restrictions.

You may be interested in the following also.

  1. Access Modifiers – Meanings 2. Rules of Access Specifiers in Method Overriding 3. Rules of Exceptions in Method Overriding

Pass your comments of how far this "Access Specifiers Modifiers "is helpful to you with suggestions.