Swift-classes
提供:Dev Guides
スイフト-クラス
Swift 4のクラスは、柔軟な構造のビルディングブロックです。 定数、変数、関数と同様に、ユーザーはクラスのプロパティとメソッドを定義できます。 Swift 4は、クラスを宣言する際にユーザーがインターフェースや実装ファイルを作成する必要がない機能を提供します。 Swift 4では、クラスを単一のファイルとして作成でき、クラスが初期化されるとデフォルトで外部インターフェースが作成されます。
クラスを持つことの利点
- 継承は、あるクラスのプロパティを別のクラスに取得します
- 型キャストにより、ユーザーは実行時にクラス型を確認できます
- 初期化解除はメモリリソースの解放を処理します
- 参照カウントにより、クラスインスタンスに複数の参照を持たせることができます
クラスと構造の共通特性
- プロパティを定義して値を保存します
- 値へのアクセスを提供するための添え字が定義されています
- 機能を改善するためにメソッドが初期化されます
- 初期状態は初期化子によって定義されます
- 機能はデフォルト値を超えて拡張されています
- プロトコル機能標準の確認
構文
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のクラスは、単一のインスタンスを指す複数の定数と変数を参照します。 特定のクラスインスタンスID演算子を指す定数と変数について知るために使用されます。 クラスインスタンスは常に参照渡しされます。 クラスでは、NSString、NSArray、およびNSDictionaryインスタンスは常にコピーとしてではなく、既存のインスタンスへの参照として割り当てられ、渡されます。
Identical to Operators | Not Identical to Operators |
---|---|
Operator used is (===) | Operator used is (!==) |
Returns true when two constants or variables pointing to a same instance | Returns true when two constants or variables pointing to a different instance |
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