कोटलिन अपने गेटर्स और सेटिंग्स को स्वतः उत्पन्न करता है, लेकिन मैंने उन्हें कभी नहीं देखा? साथ ही, कोटलिन में कस्टम गेटर/सेटर लिखने का सही तरीका क्या है? जब मैं कहता हूं myObj.myVar = 99
मुझे लगता है कि myVar
myObj
का सार्वजनिक क्षेत्र है जो मैं सीधे एक्सेस कर रहा हूं? वास्तव में यहाँ क्या हो रहा है?कोटलिन - गेटर्स और सेटर्स को समझना
उत्तर
यह कुछ स्थानों में जवाब दिया गया है, लेकिन मैंने सोचा कि मैं जावा/सी #/सी/सी से Kotlin में संक्रमण लोगों के लिए एक ठोस उदाहरण साझा करेंगे ++ और जो एक ही सवाल है कि मैंने किया था:
मुझे यह समझने में कठिनाई हो रही थी कि कोटलिन में गेटर्स और सेटर्स कैसे काम करते थे, खासकर जब उन्हें कभी स्पष्ट रूप से नहीं कहा जाता था (जैसा कि वे जावा में हैं)। इस वजह से, मैं असहज महसूस कर रहा था, क्योंकि ऐसा लगता था कि हम सीधे मैदानों के रूप में युद्धों/vals का जिक्र कर रहे थे। तो मैंने यह दिखाने के लिए थोड़ा प्रयोग किया कि यह मामला नहीं है, और वास्तव में यह एक अंतर्निहित (ऑटो-जेनरेट) या स्पष्ट गेटर/सेटर है जिसे कोटलिन में कहा जाता है जब आप एक चर/मूल्य तक पहुंचते हैं। अंतर यह है कि आप स्पष्ट रूप से डिफ़ॉल्ट गेटर/सेटर के लिए नहीं पूछते हैं।
documentation से - एक संपत्ति घोषित करने के लिए पूर्ण वाक्य रचना है:
var <propertyName>: <PropertyType> [= <property_initializer>]
[<getter>]
[<setter>]
और मेरे उदाहरण
class modifiersEg {
/** this will not compile unless:
* - we assign a default here
* - init it in the (or all, if multiple) constructor
* - insert the lateinit keyword */
var someNum: Int?
var someStr0: String = "hello"
var someStr1: String = "hello"
get() = field // field is actually this.someStr1, and 'this' is your class/obj instance
set(value) { field = value }
// kotlin actually creates the same setters and getters for someStr0
// as we explicitly created for someStr1
var someStr2: String? = "inital val"
set(value) { field = "ignore you" }
var someStr3: String = "inital val"
get() = "you'll never know what this var actually contains"
init {
someNum = 0
println(someStr2) // should print "inital val"
someStr2 = "blah blah blah"
println(someStr2) // should print "ignore you"
println(someStr3) // should print "you'll never know what this var actually contains"
}
है मुझे आशा है कि कुछ अन्य लोगों के लिए यह सब एक साथ लाने में मदद करता है?
संभावित डुप्लिकेट मुझे पता है कि यह वास्तव में शुरुआत अनुकूल नहीं है, लेकिन मैं यह भी होगा कुछ जटिल संपत्ति-संबंधित सुविधाओं, जैसे प्रतिनिधि संपत्तियों के मामले में कोटलिन बाइटकोड इंस्पेक्टर का उपयोग करने की अत्यधिक अनुशंसा करते हैं। – daemontus
कुछ एसआरटी 0 प्रोप, गेटर्स और सेटर के लिए उनकी दृश्यता का दायरा क्या है? इस उदाहरण में सभी गुण सार्वजनिक हैं (डिफ़ॉल्ट)। यदि मेरे पास निजी गुण हैं तो यह विलुप्त काम होगा - कुछ ऐसा है जो मुझे जावा देव होने के लिए उपयोग किया जाता है। –
मैं निजी चर के लिए 'गेटर 'और' सेटर' का उपयोग कैसे कर सकता हूं – viper
- 1. कोटलिन में गेटर्स और सेटर्स
- 2. लुआ गेटर्स और सेटर्स
- 3. जावा गेटर्स और सेटर्स
- 4. सी # गेटर्स/सेटर्स और इंटरफेस में सेटर्स
- 5. पायथन: जेनेरिक गेटर्स और सेटर्स
- 6. डीडीडी और गेटर्स और सेटर्स का उपयोग
- 7. जावास्क्रिप्ट गेटर्स/सेटर्स और ऑब्जेक्ट्स विस्तारित
- 8. गेटर्स और सेटर्स। क्या प्रदर्शन ओवरहेड है?
- 9. जावा क्लास में स्कैला गेटर्स और सेटर्स
- 10. गेटर्स और सेटर्स का क्या मतलब है?
- 11. आईई में जावास्क्रिप्ट गेटर्स/सेटर्स?
- 12. एक्लिप्स में सेटर्स और गेटर्स को कैसे फोल्ड या छुपाएं?
- 13. आप गेटर्स और सेटर्स विधि को निजी क्यों घोषित करेंगे?
- 14. एक मोंगोइड मॉडल के सेटर्स और गेटर्स को ओवरराइड करें
- 15. सेटर्स और गेटर्स कैसे उत्पन्न करें, और C++ प्रीप्रोसेसर
- 16. QTCreator के साथ ऑटो-जेनरेटर सेटर्स/गेटर्स?
- 17. उद्देश्य सी - एक्सेसर्स यानी गेटर्स/सेटर्स
- 18. PHP ओओपी बहुत सारे सेटर्स, गेटर्स
- 19. परमाणु इंटेगर बनाम सिंक्रनाइज़ गेटर्स/सेटर्स
- 20. प्ले में उत्पन्न गेटर्स और सेटर्स से लाभ! फ्रेमवर्क
- 21. NetBeans में PHP गेटर्स और सेटर्स कैसे उत्पन्न करें?
- 22. जावा: गेटर्स और सेटर्स के साथ 'अस्थिर' निजी फ़ील्ड
- 23. गेटर्स और सेटर्स के लिए जूनिट टेस्ट विधि
- 24. लागू गेटर्स और सेटर्स मेरे लिए नहीं बनाए गए
- 25. गेटर्स और सेटर्स के लिए बैकिंग वैरिएबल का उपयोग करना
- 26. ईसीएमएस्क्रिप्ट 6 कक्षाओं में गेटर्स और सेटर्स क्या हैं?
- 27. जावास्क्रिप्ट में गेटर्स और सेटर्स का उपयोग क्यों करें?
- 28. मैं टाइपस्क्रिप्ट गेटर्स और सेटर्स पर जासूसी कैसे करूं?
- 29. ग्रहण उत्पन्नकर्ता और सेटर्स
- 30. निजी क्षेत्र javadoc के गेटर्स/सेटर्स के स्वचालित प्रचार?
की [Getters और Kotlin में Setters] (https://stackoverflow.com/questions/37906607/getters-and-setters-in-kotlin) – Bharatesh