← Back to Scala Course | Chapter 7: OOP Basics | Lesson 4 of 7

एक्सेस Modifiers

Access modifiers तय करते हैं कि कौन किसी चीज़ का उपयोग कर सकता है, जैसे अलग-अलग locks वाले कमरे। चीज़ें सबके लिए खुली होती हैं जब तक आप उन्हें private या protected न करें।

In this page:

  1. Access Modifiers
Syntax
scala
class ClassName {
  private var hidden: Type = value
  protected var inherited: Type = value
  var visible: Type = value
}

Access Modifiers

Scala members default रूप से public होते हैं जब तक private (सिर्फ class के अंदर दिखाई देने वाला) या protected (class और उसकी subclasses के अंदर दिखाई देने वाला) से चिह्नित न हों।

private[this] access को और भी सीमित कर देता है, सिर्फ specific instance तक, पूरी class तक नहीं। आंतरिक state को private रखना और उसे public methods के ज़रिए उजागर करना standard OOP practice है, जैसे ज़्यादातर दूसरी languages में।

Note: Scala members default रूप से public होते हैं -- कुछ languages के विपरीत जहां आपको explicitly public visibility चुननी पड़ती है।

उदाहरण: Access Modifiers

markup
class Account(startingBalance: Double) {
  private var balance = startingBalance

  def deposit(amount: Double): Unit = {
    balance += amount
  }

  def getBalance(): Double = balance
}

object Main extends App {
  val acc = new Account(100)
  acc.deposit(50)
  println(acc.getBalance())
}
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. class के बाहर से किसी private member को access करने की कोशिश करना, जैसे acct.balance, जो compile error देता है।
  2. यह मान लेना कि private members को किसी companion object से छुपाता है, जबकि एक companion object class के private members को access कर सकता है।
  3. modifiers छोड़कर सब कुछ public बना देना, जिससे वे fields उजागर हो जाते हैं जिन्हें सिर्फ deposit जैसे methods से बदलना चाहिए।
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.