Kotlin in Hindi : Visibility Modifiers

  • Introduction to kotlin visibility modifiers in Hindi
  • Different kotlin members visibility in Hindi

Introduction to Kotlin Visibility Modifiers

आज के तेजी से बदलते हुए युग में data को safe रखना बहुत बड़ी चुनौती है। Data को safe रखने के लिए अलग अलग approaches use की जाती है। Object oriented programming में data और उससे related members को safe रखने के लिए modifiers का प्रयोग किया जाता है।

Define Visibility (Access Level)

Visibility modifiers का प्रयोग program में code का access level (visibility) define करने के लिए किया जाता है। इन modifiers के द्वारा आप ये define करते है की कोई दूसरा code उस code को access कर सकता है या नहीं।

Visibility modifiers की मदद से आप private और important data को hide कर सकते है और वह interface जिससे user interact करेगा उसे publically show करते है।

Can Be Used Only With

Kotlin में निचे दिए जा रहे members पर ही visibility modifiers apply किये जा सकते है।

  • Classes
  • Objects
  • Interfaces
  • Constructors
  • Functions
  • Properties
  • Property Setters

Four Visibility Modifiers

Kotlin में 4 प्रकार के modifiers available है। इन सभी modifiers का अर्थ अलग अलग members के लिए अलग अलग होता है जिसके बारे में आप आगे detail से जानेंगे।

  • Public
  • Private
  • Internal
  • Protected

Default Visibility is Public

यदि आप स्वयं define नहीं करते है तो kotlin में by default सभी elements की visibility public होती है। इसका अर्थ यह होता है की by default सभी codes दूसरे codes द्वारा accessible होते है। 

Getters Have Same Visibility as Property

Properties में define किये जाने वाले getter methods की visibility वही होती है जो property की होती है।

Top Level Elements

Classes, functions, properties, objects और interfaces top level elements होते है। इन्हें बिना कोई दूसरा code block create किये एक package के अंदर directly define किया जा सकता है। 

  • Public – जब एक top level element को public define किया जाता है तो इसका अर्थ यह होता है की उस element को package में कँही से भी access किया जा सकता है। 
  • Private – Top level elements को private define किये जाने का अर्थ होता है की उन्हें सिर्फ उसी file के अंदर कँही भी access किया जा सकता है।
  • Internal – Top level elements को internal define करने से उन्हें उस module के अंदर कँही से भी access किया जा सकता है।
  • Protected – जब किसी top level element को protected define किया जाता है तो उसे सिर्फ inheritance के द्वारा ही access किया जा सकता है।

Class Members 

Class members के लिए visibility modifiers का उपयोग अलग तरह से किया जाता है।

  • Public – ऐसा कोई भी code जो class को access कर सकता है उसके सभी public members को भी access कर सकता है। 
  • Private – Private class members को सिर्फ उन्हीं classes में use किया जा सकता है जिसमे उन्हें define किया गया हों। 
  • Internal – Current module के अंदर जो कोई code class को access कर सकता है उसके सभी internal members को भी access कर सकता है। 
  • Protected – किसी class के protected members को उसी class में use किया जा सकता है और इसके अलावा उसे inherit करने वाली classes में भी use किया जा सकता है। 

Kotlin में class members और interface members दोनों के लिए visibility modifiers का use एक समान होता है, इसलिए interface members के बारे में अलग से नहीं बताया जा रहा है। 

Primary Constructor

Primary constructor की visibility define करने के लिए आप constructor word से पूर्व visibility modifier को लिखते है। यदि आप primary constructor की visibility define कर रहे है तो constructor keyword define किया जाना अनिवार्य है। 

class <class-Name> <visibility-Modifier> constructor(parameters)
{

}

Local Declarations

Local declarations ऐसे declarations (functions, variables, classes आदि) होते है जो किसी function body, constructor, init block और property accessors में define किये जाते है। 

Local declarations के साथ आप visibility modifiers नहीं define कर सकते है। 

Modules 

एक module कई kotlin files का set होता है जिन्हे एक साथ compile किया जाता है। एक module के किसी member को यदि internal visibility modifier के साथ define किया गया है तो इसका अर्थ है की वह member पुरे module में कँही से भी access किया जा सकता है।

Public होने पर member को पुरे module में कँही भी access किया जा सकता है। Private होने पर उस member को सिर्फ उसी file में access किया जा सकता है। Protected members को उन्हें inherit करने वाले members ही access कर सकते है।

Previous: Kotlin Class Inheritance
Next: Kotlin Delegated Properties