Swift-クラス

Swift 4のクラスは、柔軟な構造の構成要素です。定数、変数、関数と同様に、ユーザーはクラスのプロパティとメソッドを定義できます。Swift 4は、クラスを宣言する際に、ユーザーがインターフェースや実装ファイルを作成する必要がない機能を提供します。Swift 4では、クラスを1つのファイルとして作成でき、クラスが初期化されると、デフォルトで外部インターフェイスが作成されます。

クラスを持つことの利点

  • 継承は、あるクラスのプロパティを別のクラスに取得します

  • 型キャストにより、ユーザーは実行時にクラス型を確認できます

  • デイニシャライザーはメモリリソースの解放を処理します

  • 参照カウントにより、クラスインスタンスは複数の参照を持つことができます

クラスと構造の共通の特徴

  • プロパティは、値を格納するように定義されています
  • 値へのアクセスを提供するために添え字が定義されています
  • メソッドは機能を改善するために初期化されます
  • 初期状態は初期化子によって定義されます
  • 機能がデフォルト値を超えて拡張されています
  • プロトコル機能標準の確認

構文

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

クラスID演算子

Swift 4のクラスは、単一のインスタンスを指す複数の定数と変数を参照します。特定のクラスインスタンスを指す定数と変数について知るために、アイデンティティ演算子が使用されます。クラスインスタンスは常に参照によって渡されます。クラスでは、NSString、NSArray、およびNSDictionaryインスタンスは常に割り当てられ、コピーとしてではなく、既存のインスタンスへの参照として渡されます。

オペレーターと同一 オペレーターと同一ではない
使用される演算子は(===)です 使用される演算子は(!==)です
同じインスタンスを指す2つの定数または変数の場合にtrueを返します 2つの定数または変数が異なるインスタンスを指している場合にtrueを返します
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