Swift:ベース(19)クラス
2511 ワード
クラスと構造体の比較
Swiftにはクラスと構造体に多くの共通点がある.共通点は次のとおりです.は、値 を記憶するための属性を定義する.は、機能 を提供するための方法を定義する.は、値 にアクセスするための付属スクリプトを定義する.は、初期化値 を生成するコンストラクタを定義する.デフォルト実装機能を追加するために拡張する は、あるクラスに標準機能を提供するためのプロトコルに合致する である.
クラスには、構造体と比較して、次のような追加機能があります.継承は、あるクラスが別のクラスを継承することを可能にする特徴 である.のタイプ変換により、実行時にクラスインスタンスのタイプ をチェックおよび解釈することができる.デフォーマは、クラスインスタンスが割り当てられたリソース を解放することを可能にする.参照カウントは、1つのクラスに対する複数回の参照を許可する 構文:
クラス定義
クラスのインスタンス化:
≪インスタンス|Instance|emdw≫
以上のプログラムの実行出力結果は以下の通りです.
参照タイプとしてクラス属性にアクセス
クラスの属性は.訪問に来る.形式は:クラス名をインスタンス化します.属性名:
以上のプログラムの実行出力結果は以下の通りです.
ていとうえんざんし
クラスが参照タイプであるため、複数の定数と変数がバックグラウンドでクラスインスタンスを同時に参照する可能性があります.
2つの定数または変数が同じクラスインスタンスを参照しているかどうかを判定するために、Swiftには2つの恒等演算子が作成されています.
ていとうえんざんし
ふていじょうえんざんし
演算子:==
演算子:!==
2つの定数または変数が同じクラスインスタンスを参照する場合はtrueを返します.
2つの定数または変数が異なるクラスインスタンスを参照する場合はtrueを返します.
≪インスタンス|Instance|emdw≫
以上のプログラムの実行出力結果は以下の通りです.
Swiftにはクラスと構造体に多くの共通点がある.共通点は次のとおりです.
クラスには、構造体と比較して、次のような追加機能があります.
class classname {
Definition 1
Definition 2
……
Definition N
}
クラス定義
class student{
var studname: String
var mark: Int
var mark2: Int
}
クラスのインスタンス化:
let studrecord = student()
≪インスタンス|Instance|emdw≫
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
ていとうえんざんし
クラスが参照タイプであるため、複数の定数と変数がバックグラウンドでクラスインスタンスを同時に参照する可能性があります.
2つの定数または変数が同じクラスインスタンスを参照しているかどうかを判定するために、Swiftには2つの恒等演算子が作成されています.
ていとうえんざんし
ふていじょうえんざんし
演算子:==
演算子:!==
2つの定数または変数が同じクラスインスタンスを参照する場合はtrueを返します.
2つの定数または変数が異なるクラスインスタンスを参照する場合はtrueを返します.
≪インスタンス|Instance|emdw≫
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