Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 33

Access Modifiers

Access modifiers क्या हैं

Access modifiers नियंत्रित करते हैं कौन class, field या method इस्तेमाल कर सकता है। ये आपको अंदरूनी details छिपाने और सिर्फ़ जो public होना चाहिए वो उजागर करने देते हैं। Java में चार स्तर हैं, पूरी तरह खुले (public) से पूरी तरह बंद (private) तक। ये encapsulation की बुनियाद हैं।

💡 public = हर जगह, private = सिर्फ़ उसी class, protected = package + subclasses, default = उसी package।

चार modifiers

  • public — कहीं से भी accessible।
  • private — सिर्फ़ उसी class में accessible।
  • protected — उसी package में और subclasses द्वारा accessible।
  • default (कोई keyword नहीं) — सिर्फ़ उसी package में accessible।

आप सबसे प्रतिबंधित स्तर चुनते हैं जो फिर भी आपके code को चलने दे — यह data सुरक्षित रखता है।

private और encapsulation

class Account {
    private double balance = 0;   // छिपा data
}
// Account a = new Account();
// a.balance = -500;   // ERROR: balance private है

balance को private बनाना बाहरी code को उसे सीधे बदलने से रोकता है — जैसे negative balance set करना। यह encapsulation है: field छिपा और सुरक्षित है।

Getters और setters

class Account {
    private double balance = 0;

    public double getBalance() {      // getter
        return balance;
    }
    public void deposit(double amt) { // नियंत्रित setter
        if (amt > 0) balance += amt;  // validation!
    }
}

Public methods private field तक नियंत्रित पहुँच देती हैं। deposit method balance बदलने से पहले amount validate करती है — जो आप public field से लागू नहीं कर सकते।

protected और default

  • protected — तब इस्तेमाल जब subclasses (दूसरे packages में भी) को पहुँच चाहिए, पर public को नहीं।
  • default — कोई modifier न लिखकर; member सिर्फ़ अपने package में दिखता है।

ये बीच के स्तर public और private से कम आम हैं, पर package और inheritance design को उपयोगी हैं।

त्वरित तुलना

Modifierउसी classउसी packageSubclassहर जगह
publicहाँहाँहाँहाँ
protectedहाँहाँहाँनहीं
defaultहाँहाँनहींनहीं
privateहाँनहींनहींनहीं

आम गलतियाँ

  • सारे fields public बनाना। Fields private रखिए और methods से उजागर कीजिए।
  • default को public से मिलाना। कोई modifier नहीं मतलब package-private, public नहीं।
  • protected का ज़्यादा इस्तेमाल। इसे तभी इस्तेमाल कीजिए जब subclasses को सच में पहुँच चाहिए।
  • Setters में validation छोड़ना। Setter का मक़सद set करने से पहले values जाँचना है।

सारांश

  • Access modifiers नियंत्रित करते हैं कौन class member इस्तेमाल कर सकता है।
  • public हर जगह खुला; private सिर्फ़ उसी class।
  • protected subclasses जोड़ता है; default सिर्फ़ package।
  • Fields private रखकर getters/setters से उजागर कीजिए — encapsulation।
  • Setters private data बदलने से पहले values validate कर सकते हैं।

आगे, data hiding दोहराइए classes और objects से, या static keyword सीखिए।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Java में access modifiers क्या हैं?
Access modifiers नियंत्रित करते हैं कौन class, field या method देख और इस्तेमाल कर सकता है। Java में चार हैं: public (हर जगह), private (सिर्फ़ उसी class), protected (उसी package और subclasses), और default (उसी package)। ये आपके code की रक्षा करते हैं।
public और private में क्या अंतर है?
public मतलब member कहीं से भी access हो सकता है। private मतलब सिर्फ़ उसी class से। Fields आमतौर पर private होते हैं, और public methods उन तक पहुँच नियंत्रित करती हैं।
Encapsulation क्या है?
Encapsulation का मतलब fields private रखना और उन्हें सिर्फ़ public methods (getters और setters) से उजागर करना। यह अंदरूनी data छिपाता है और आपको बदलाव validate करने देता है, जो access modifiers का मुख्य फ़ायदा है।
Default access modifier क्या है?
अगर आप कोई modifier न लिखें, member को default (package-private) access मिलता है — सिर्फ़ उसी package की classes को दिखता है। यह protected और public से ज़्यादा प्रतिबंधित है।
Getter और setter क्या है?
Getter एक public method है जो private field की value लौटाती है (जैसे getName()), और setter एक public method है जो उसे बदलती है (जैसे setName())। ये private data तक नियंत्रित पहुँच देते हैं।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicWhy No Multiple Inheritance आपकी प्रगति: 33 / 61 (54%) · Lesson 34 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें