Klasse und Objekt in Swift

1- Die Vorstellung

Das Dokument wird nach der Quelle von ... geschrieben
  • Swift 2.x

  • XCode 7.3

2- Ihre erste Klasse

Swift ist eine aus C und Objective-C geerbte Sprache. Sie ist eine Verfahrensorientierte und Objektsorientierte Sprache. Die Klasse ist ein Begriff der objektsorientierten Programmierungssprache. Die Klasse hat die Attribute und die Methode. Die Klasse wird eine Funktion der Klasse verstanden. Aus einer Klasse können Sie ein Objekt erstellen 
Swift benutzt ein Schlusselwort class um eine Klasse zu melden
Eine Hauptfile  Rectangle.swift erstellen
Rectangle.swift
import Foundation

 
class Rectangle  {
  
    // width property
    var width: Int = 5;
  
    // height property
    var height: Int = 10;
  
    // Default Constructor (No parameter)
    // (Method to create instance).
    init()  {
      
    }
  
    // Contructor with 2 parameters.
    // self.width refers to the width property of the class
    init (width: Int, height: Int)  {
        self.width = width
        self.height = height
  
    }
  
    // A method calculates the area of the rectangle.
    func getArea()  -> Int  {
      
        var area = self.width * self.height
        return area
    }
  
  
}
Die Code benutze die Klasse   Rectangle um das Objekt zu erstellen.
RectangleTest.swift
import Foundation


func test_rectangle()  {
  
    print("Create a Rectangle rec1");
  
    // Create Rectangle object
    // via default constructor: init()
    var rec1  = Rectangle()
  
  
    // Print out width, height
  
    print("rec1.width = \(rec1.width)")
    print("rec1.height = \(rec1.height)")
  
    // Call the method to calculate the area.
    var area1 = rec1.getArea()
  
    print("area1 = \(area1)")
  
  
    print("---------")
  
    print("Create a Rectangle rec2");
  
    // Create Rectangle object
    // via contructor with 2 parameters: init(Int,Int)
    var rec2 = Rectangle(width: 10, height: 15)
  
  
    // Print out width, height of object.
  
    print("rec2.width = \(rec2.width)")
    print("rec2.height = \(rec2.height)")
  
    // Call the method to calculate the area.
    var area2 = rec2.getArea()
  
    print("area2 = \(area2)")
  
}
Die File main.swift ändern um das Beispiel zu prüfen
main.swift
import Foundation

test_rectangle()
 
Das Beispiel durchführen
Jetzt können Sie die Erklärungen über die Klasse lesen. Sie sind sehr wichtig
Was passiert wenn Sie ein Objekt nach dem default constructor)?
Das Objekt  Rectangle durch den Constructor mit 2 Parameter erstellen 

3- Das Regelung über die Aufruf vom Constructor

Die Regelung Swift 2.1 zur Aufruf nach Funktion (function), der Methode (method), und dem Construktor (constructor):
  • Der erste Parameter zur Übertragung für die Funktion (oder die Methode) fordert das Label des Parameter nicht
  • Die anderen Parameter zur Übertragung für die Funktion oder die Methode fordert das Label des Parameter.
  • Die Parameter zur Übertragung für den Constructor fordert das Ladel des Parameter

4- Der Operator zum Vergleich des Objekt

Im  Swift wenn Sie ein Objekt durch den Constructor erstellen, wird eine echte Enitiät in der Speicherung erstellt. Sie hat eine bestimmte Addresse. 

Ein Operator für die Zuweisung eines Objekt AA durch ein Objekt BB erstellt keine Enitität in der Speicherung mehr. Er zeigt auf die Address von AA nach der Addresse von BB 
Der Operator === wird benutzt um die Addresse, nach der 2 Objekte zeigten zu vergleichen. Es kehrt true rück wenn die 2 Objekt auf die gleichen Addresse in der Speicherung zeigen. Der Operator  !== wird benutzt um die Addresse, nach der 2 Objekte zeigten. Es kehrt true rück wenn die 2 Objekt auf die 2 unterschiedlichen Addresse zeigen 
IdentifyOperator.swift
import Foundation


func identifyOperator()    {
  
  
    // Create object: r1
  
    var r1 = Rectangle(width: 20,height: 10)
  
    // Create object: r2
  
    var r2 = Rectangle(width: 20,height: 10)
  
    var r3 = r1
  
  
    var  b12:Bool =   r1 === r2
    var  b13:Bool =   r1 === r3
  
    print("r1 === r2 ?  \(b12)") // false
    print("r1 === r3 ?  \(b13)") // true
  
  
    var bb12: Bool = r1 !== r2
    var bb13: Bool = r1 !== r3
  

    print("r1 !== r2 ?  \(b12)") // true
    print("r1 !== r3 ?  \(b13)") // false
  
}
Das Beispiel durchführen