スイフトクラス


Swift クラスは、コードを構築するための一般的で柔軟な構造です。

クラスのプロパティ (定数、変数) とメソッドを定義できます。

他のプログラミング言語とは異なり、Swift ではカスタム クラス用に独立したインターフェイスと実装ファイルを作成する必要がありません。単一のファイルでクラスを定義するだけで、システムが他のコードへの外部インターフェイスを自動的に生成します。

クラスと構造体の比較

Swift のクラスと構造体には多くの共通点があります。共通点は次のとおりです:

  • 値を保存するプロパティを定義する

  • 機能を提供するメソッドを定義する

  • 値にアクセスするためのアフィリエイトスクリプトを定義する

  • 初期化値を生成するコンストラクターを定義する

  • デフォルト実装の機能を拡張することで拡張する

  • プロトコルに準拠して、特定のクラスに標準機能を提供する

構造体と比較して、クラスには次の追加機能があります:

  • 継承により、あるクラスが別のクラスを継承する クラスの特性

  • 型変換により、実行時にクラス インスタンスの型をチェックして解釈できるようになります

  • デストラクターを使用すると、クラス インスタンスが割り当てられているリソースを解放できるようになります

  • リファレンスカウントによりクラスが許可されます 複数の参照

構文:

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

クラス定義

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

インスタンス化されたクラス:

let studrecord = student()

インスタンス

import Cocoa

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

class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("成绩为 \(marks.mark)")

上記のプログラムの実行の出力結果は次のとおりです:

成绩为 300

クラス属性へのアクセス参照型として

クラスの属性 .経由でアクセスできます。形式は次のとおりです: インスタンス化されたクラス名。属性名:

import Cocoa

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

Identity 演算子

クラスは参照型であるため、複数の定数と変数が存在する可能性があります。バックグラウンドと同時にクラスインスタンスへの参照。

2 つの定数または変数が同じクラス インスタンスを参照しているかどうかを判断するために、Swift には 2 つの組み込みの恒等演算子があります。 ===

演算子は次のとおりです: !== 2 つの定数または変数が異なるクラス インスタンスを参照する場合、true を返しますインスタンス
import Cocoa

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")

if spClass1 === spClass2 {// false
    print("引用相同的类实例 \(spClass1)")
}

if spClass1 !== spClass2 {// true
    print("引用不相同的类实例 \(spClass2)")
}
引用不相同的类实例 SampleClass
2 つの定数または変数が同じクラス インスタンスを参照する場合、true を返します
上記のプログラム実行出力結果は: