Contents

スウィフト – クラス
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
クラス識別演算子
Swift 4のクラスは、複数の定数と1つのインスタンスを指す変数を参照します。特定のクラスインスタンスIDを指す定数および変数について知るために、演算子が使用される。クラスインスタンスは常に参照渡しされます。クラス内NSString、NSArray、NSDictionaryインスタンスは、コピーとしてではなく、既存のインスタンスへの参照として割り当てられ、渡されます。
演算子と同じ | 演算子と同一ではない |
---|---|
使用された演算子は(===) | 使用された演算子は(!==) |
同じインスタンスを指す2つの定数または変数 | 異なるインスタンスを指す2つの定数または変数がtrueの場合、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