Java Access Modifiers In Hindi :
java में, access modifiers कीवर्ड होते हैं जो कि class, constructor, variable, method या data member की accessibility को set करते हैं |
दूसरे शब्दों में कहें तो, “access modifiers जो है वह class, constructor, methods या variable के scope के बारें में बताता है.”
हम एक्सेस मॉडिफायर का प्रयोग करके इनके access level को बदल सकते हैं | java में 4 प्रकार के access modifiers होते हैं, जो कि निम्नलिखित हैं:-
- Default
- Private
- Protected
- Public
Default :
जब हम किसी class, constructor, methods आदि के लिए किसी भी access modifier का प्रयोग नही करते हैं तो उसे default एक्सेस मॉडिफायर समझा जाता है |
Default modifier का प्रयोग केवल इसी package के अंदर हो सकता है | इसका मतलब यह है कि यदि हमारे पास एक package में default modifier के साथ एक class है तो जो दूसरी classes इस package के अंदर है सिर्फ वो ही इस class को access कर सकती हैं. package के बाहर कोई दूसरी class इस class को access नहीं कर सकती |
यह modifier, private की तुलना में ज्यादा accessibility प्रदान करता है परन्तु यह protected और public से ज्यादा restricted है |
Example :
package myWebsite;
class Study {
void message () {
System.out.println ("This is a study related website");
}
}
ऊपर दिए गये उदाहरण में Study class के पास default access modifier है. और इस Study class को वे सभी classes एक्सेस कर सकती है जों myWebsite पैकेज के अंदर होंगी. अगर हम इस class को इस package के बाहर access करना चाहेंगे तो हमें compiler error प्राप्त होगा |
Private :
इस मॉडिफायर को private कीवर्ड का प्रयोग करके specify किया जाता है.
- private के रूप में declare किये गये methods या data members केवल उसी class के अंदर access किये जा सकते हैं जिसमें वे declare होते हैं.
- समान package की कोई दूसरी class इन members को access नहीं कर सकती.
- top level class या interface को हम private के रूप में declare नहीं कर सकते. परन्तु हम nested classes को private के रूप में declare कर सकते हैं.
example:- अब इसको उदाहरण के द्वारा देखते हैं:-
नीचे दिए उदाहरण में पैकेज myPackage के अंदर दो क्लास- Message और Example हैं. और हमने Message क्लास के अंदर एक private मेथड declare की है. और हम इस method को Example से access करते हैं तो हमें compile time error आता है |
Example :
package myPackage;
class Message {
private void show () {
System.out.println ("This is a message");
}
}
public class Example {
public static void main (String args []) {
Message obj = new Message ();
//trying to access private method of another class
obj.show (); // Compile Time Error
}
}
Protected :
इस मॉडिफायर को protected कीवर्ड का प्रयोग करके specify किया जाता है |
- protected के रूप में declare किये गये methods या data members को उसी package के अंदर access कर सकते है या दूसरे package के sub-class के अंदर access कर सकते हैं |
Example:
नीचे दिए उदाहरण में हमने दो packages P1 और P2 को create किया है | इसमें class A, P1 में है जो कि public है. इसलिए इसे package के बाहर भी access किया जा सकता है. लेकिन इसमें show method भी है जो कि protected है. इसलिए इसको class B ने inherit किया है |
package p1;
public class A{
protected void show(){
System.out.println("this is codeinhindi.online");
}
}
package p2;
import p1.*;
class B extends A{
public static void main(String args[]){
B obj = new B();
obj.msg();
}
}
Output:
this is codeinhindi.online
Public
Public access modifier को public कीवर्ड के द्वारा specify किया जाता है.
- इस modifier को कही भी access किया जा सकता है|
- इसमें किसी भी प्रकार का restriction (प्रतिबंध) नहीं होता है|
- इसके पास दूसरे modifiers की तुलना में सबसे बड़ा scope होता है|
Example :
package myPackage;
public class Study
{
public void show ()
{
System.out.println ("this is study related website");
}
}
package yourPackage;
import myPackage. *;
class Test
{
public static void main (String args [])
{
Study obj = new Study;
obj.show ();
}
}
Output :
this is study related website
- अगर कोई दूसरा programmer हमारी class का प्रयोग करता है तो हमें सबसे ज्यादा restrictive access level का प्रयोग करना चाहिए, हमें ज्यादातर private का use करना चाहिए, (किसी विशेष परिस्थिति को छोडकर).
- हमें public fields को avoid करना चाहिए |