स्विफ्ट - कक्षाएं

स्विफ्ट 4 में कक्षाएं लचीला निर्माण के ब्लॉक का निर्माण कर रही हैं। स्थिरांक, चर और कार्यों के समान उपयोगकर्ता वर्ग गुणों और विधियों को परिभाषित कर सकता है। स्विफ्ट 4 हमें कार्यक्षमता प्रदान करता है कि कक्षाओं की घोषणा करते समय उपयोगकर्ताओं को इंटरफेस या कार्यान्वयन फाइलें बनाने की आवश्यकता नहीं होती है। स्विफ्ट 4 हमें एकल फ़ाइल के रूप में कक्षाएं बनाने की अनुमति देता है और कक्षाएं शुरू होने के बाद बाहरी इंटरफेस डिफ़ॉल्ट रूप से बनाए जाएंगे।

वर्ग होने के लाभ

  • वंशानुक्रम एक वर्ग से दूसरे वर्ग के गुणों को प्राप्त करता है

  • टाइप कास्टिंग उपयोगकर्ता को रन टाइम पर क्लास के प्रकार की जांच करने में सक्षम बनाता है

  • Deinitializers मेमोरी संसाधनों को जारी करने का ध्यान रखते हैं

  • संदर्भ की गिनती कक्षा के उदाहरण को एक से अधिक संदर्भ के लिए अनुमति देती है

वर्गों और संरचनाओं के सामान्य लक्षण

  • मूल्यों को संग्रहीत करने के लिए गुणों को परिभाषित किया गया है
  • मूल्यों तक पहुंच प्रदान करने के लिए सदस्यता को परिभाषित किया गया है
  • कार्यप्रणाली में सुधार के लिए तरीकों का आरंभ किया जाता है
  • प्रारंभिक अवस्था को इनिशियलाइज़र द्वारा परिभाषित किया जाता है
  • डिफ़ॉल्ट मानों से परे कार्यक्षमता का विस्तार किया जाता है
  • प्रोटोकॉल कार्यक्षमता मानकों की पुष्टि करना

वाक्य - विन्यास

Class classname {
   Definition 1
   Definition 2
   --- 
   Definition N
}

कक्षा की परिभाषा

class student {
   var studname: String
   var mark: Int 
   var mark2: Int 
}

उदाहरण बनाने के लिए वाक्य रचना

let studrecord = student()

उदाहरण

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark = 300
}

let marks = studentMarks()
print("Mark is \(marks.mark)")

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

Mark is 300

संदर्भ प्रकार के रूप में कक्षा के गुणों तक पहुँच

वर्ग गुण 'द्वारा पहुँचा जा सकता है।' वाक्य - विन्यास। प्रॉपर्टी के नाम को 'से अलग किया जाता है।' उदाहरण के नाम के बाद।

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}

let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

Mark1 is 300
Mark2 is 400
Mark3 is 900

क्लास आइडेंटिटी ऑपरेटर्स

स्विफ्ट 4 में कक्षाएं एक ही उदाहरण की ओर इशारा करते हुए कई स्थिरांक और चर को संदर्भित करती हैं। स्थिरांक और चर के बारे में जानने के लिए एक विशेष वर्ग के उदाहरण की ओर इशारा करते हुए पहचान ऑपरेटरों का उपयोग किया जाता है। कक्षा उदाहरण हमेशा संदर्भ द्वारा पारित किए जाते हैं। कक्षाओं में NSString, NSArray, और NSDictionary उदाहरण हमेशा एक प्रतिलिपि के बजाय मौजूदा उदाहरण के संदर्भ में दिए और पास किए जाते हैं।

ऑपरेटर्स को पहचान संचालकों को पहचान नहीं
ऑपरेटर का उपयोग किया जाता है (===) ऑपरेटर का उपयोग किया जाता है (! ==)
जब दो कांस्टेंट या वैरिएबल एक ही उदाहरण की ओर इशारा करते हैं, तो सच होता है जब दो कांस्टेंट या वैरिएबल एक अलग उदाहरण की ओर इशारा करते हैं तो यह सच है
class SampleClass: Equatable {
   let myProperty: String
   init(s: String) {
      myProperty = s
   }
}

func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
   return lhs.myProperty == rhs.myProperty
}

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

spClass1 === spClass2 // false
print("\(spClass1)")

spClass1 !== spClass2 // true
print("\(spClass2)")

जब हम खेल के मैदान का उपयोग करके उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं -

main.SampleClass
main.SampleClass