Modifiers-
Definition-
These are the keywords which modifies properties of classes and fields.
Types of modifiers-
1- Access modifiers
2-Non-access modifiers
1-Access modifier-
Modifies accessibility of classes and fields.
-Controls visibility.
(i)Private – only within class
(ii)Default – only within package.
(iii)Protected – within package and outside the package using inheritance
(iv)Public – everywhere
Note- classes can’t be private and protected.
Note- Local variables can’t have any access modifier
code samples are here
1- Program to demonstrate access modifiers on variables
i- Program for class ExUsingVar
package AccessModifiers8; public class ExUsingVar { public int a=10; private int b=20; protected int c=30; int d=40; public static void main(String[] args) { ExUsingVar e1 =new ExUsingVar(); System.out.println(e1.a); System.out.println(e1.b); System.out.println(e1.c); System.out.println(e1.d); } }ii-Program for class ExUsingVar1
package AccessModifiers8; public class ExUsingVar1 { public static void main(String[] args) { ExUsingVar e1 =new ExUsingVar(); System.out.println(e1.a); System.out.println(e1.b); System.out.println(e1.c); System.out.println(e1.d); } }iii-Program to show ExUsingVar3
package AccessModifiers8_1; import AccessModifiers8.ExUsingVar; public class ExUsingVar3 { public static void main(String[] args) { ExUsingVar e1 =new ExUsingVar(); System.out.println(e1.a); System.out.println(e1.b); System.out.println(e1.c); System.out.println(e1.d); } }2-Non Access Modifiers- (Final,Static,abstract,Transient,Synchronized,Volatile)
1-Final-
used to restrict the user.
(a)final variable –
can’t change the value
(b) final method –
can’t override
(c) final class–
can’t inherit
2-Static-
-static belongs to class rather than objects.
(a) static variable
-gets memory only once at the time of class loading.
-used to refer the common property of all objects(b) static method
– can be invoked without an instance/object
-can access static variable(c) static nested Class
-can access static data members of outer class-object is created in scope of outer class
(d) static block
– executes even before main method
-used to initialize static data members
3- Abstract –
-Used in abstraction(oops concept)
-can be applied on-
a- Abstract class
b- Abstract method4-Transient-
– prevents serialization of value.(Io package concept)
-only for variable5-Synchronized-(multi-threading concept)
-prevents sharing by more than one threads at a time
– can be
a- synchronized method
b- synchronized block6-Volatile-(multi-threading concept)
– Allows modification at run-time.
– only for variable