Access Modifiers; Classes, Data members, Methods और Constrctutor के accessbility के लिए इस्तेमाल किया जाता है |
Access Modifiers चार प्रकार के होते है |
default Modifier सिर्फ package के अन्दर ही accessible होता है |
Program में देखे तो दो packages बनाये गए है | class A को किसी package से access किया जाता है | लेकिन default Modifier होने के कारण ये access नहीं होता |
Output :
Program में देखे तो parent class में a और b नाम के दो instance variables लिए है | लेकिन a variable; private है | ये variable सिर्फ अपने class के अन्दर ही accessible होते है | Program में b variable दुसरे Child class से access हो रहा है, लेकिन a variable access नहीं हो रहा |
Source Code :
Output :
Source Code :
Output :
Access Modifiers चार प्रकार के होते है |
- default Access Modifier
- private Access Modifier
- public Access Modifier
- protected Access Modifier
1. default Access Modifier
अगर कोई Modifier नहीं दिया जाता तो, bydefault default दिया जाता है |default Modifier सिर्फ package के अन्दर ही accessible होता है |
Program में देखे तो दो packages बनाये गए है | class A को किसी package से access किया जाता है | लेकिन default Modifier होने के कारण ये access नहीं होता |
//A.java
package pack1;
class A{
void disp(){
System.out.println("class A");
}
}
//B.java
package pack2;
import pack1.*;
class B{
public static void main(String args[]){
A a = new A();
a.disp();
}
}
C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . A.java
C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . B.java
B.java:6: error: A is not public in pack1; cannot be accessed from outside package
A a = new A();
^
B.java:6: error: A is not public in pack1; cannot be accessed from outside package
A a = new A();
^
2 errors
2. private Access Modifier
private Access Modifier ये सिर्फ class के अन्दर accessible होते है |Program में देखे तो parent class में a और b नाम के दो instance variables लिए है | लेकिन a variable; private है | ये variable सिर्फ अपने class के अन्दर ही accessible होते है | Program में b variable दुसरे Child class से access हो रहा है, लेकिन a variable access नहीं हो रहा |
Source Code :
class Parent{
private int a = 5;
int b = 10;
}
class Child extends Parent{
void disp(){
System.out.println("Value of a : " + a);
System.out.println("Value of b : " + b);
}
public static void main(String args[]){
Child c = new Child();
c.disp();
}
}
Output :
Child.java:9: error: a has private access in Parent
System.out.println("Value of a : " + a);
3. public Access Modifier
public Access Modifier से कहा पर भी access किया जा सकता है |//A.java
package pack1;
public class A{
public void disp(){
System.out.println("class A");
}
}
//B.java
package pack2;
import pack1.*;
class B{
public static void main(String args[]){
A a = new A();
a.disp();
}
}
C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . A.java C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . B.java C:\Program Files\Java\jdk1.8.0_111\bin>java pack2.B class A
4. protected Access Modifier
ये सिर्फ अपने package के अन्दर और अपने sub-class पर accessible होते है |Source Code :
class Parent{
int a = 5;
int b = 10;
protected void disp(){
System.out.println("Value of a : " + a);
System.out.println("Value of b : " + b);
}
}
class Child extends Parent{
public static void main(String args[]){
Child c = new Child();
c.disp();
}
}
Output :
Value of a : 5 Value of b : 10
Accessing protected method Outside Package
//A.java
package pack1;
public class A{
protected void disp(){
System.out.println("class A");
}
}
//B.java
package pack2;
import pack1.*;
class B extends A{
public static void main(String args[]){
B b = new B();
b.disp();
}
}
C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . A.java C:\Program Files\Java\jdk1.8.0_111\bin>javac -d . B.java C:\Program Files\Java\jdk1.8.0_111\bin>java pack2.B class A







No comments: