swiftクラスのプロパティ_ストレージ属性|計算属性|クラス属性

2281 ワード

クラスのプロパティの説明


Swiftのクラスの属性はいくつかあります.
  • ストレージ属性:ストレージインスタンスの定数と変数
  • 計算属性:何らかの方法で計算された属性
  • クラス属性:クラス全体に関連する属性
  • ストレージのプロパティ

  • ストレージ属性は、クラスインスタンスの一部として定数および変数
  • を格納する最も簡単な属性である.
  • は、記憶属性にデフォルト値を与えるもよいし、初期化方法において初期化
  • を行うもよい.
  • 以下は記憶属性の書き方である:ageとnameはいずれも記憶属性であり、その学生の年齢と名前を記録するために用いられ、chineseScoreとmathScoreも記憶属性であり、その学生の国語点数と数学点数を記録するために用いる.
  • class Student : NSObject {
        //  
        //  
        var age : Int = 0
        var name : String?
    
        var chineseScore : Double = 0.0
        var mathScore : Double = 0.0
    }
    
    //  
    let stu = Student()
    
    //  
    stu.age = 10
    stu.name = "why"
    
    stu.chineseScore = 89.0
    stu.mathScore = 98.0
    

    計算プロパティ

  • 計算属性は、実際の値を格納のではなく、他の属性
  • を間接的に取得および設定するためにgetterおよびオプションsetterを提供する.
  • 計算属性は、一般にgetterメソッド
  • のみを提供する.
  • getterのみが提供され、setterが提供されない場合、この計算属性は読み取り専用属性であり、get{}
  • を省略することができる.
  • 以下は属性を計算する書き方である:averageScoreは属性を計算し、chineseScoreとmathScoreで計算した属性であり、setterメソッドにはnewValue変数があり、システムが割り当てた
  • である.
    class Student : NSObject {
        //  
        //  
        var age : Int = 0
        var name : String?
        var chineseScore : Double = 0.0
        var mathScore : Double = 0.0
        //  
        var averageScore : Double {
            get {
                return (chineseScore + mathScore) / 2
            }
            //  , 
            // newValue , 
            set {
                self.averageScore = newValue
            }
        }
    }
    //  
    print(stu.averageScore)
    

    クラス属性

  • クラス属性は、クラスのインスタンスに関連する
  • ではなく、クラスに関連する.
  • すべてのクラスとインスタンスはクラス属性を共有する.したがって、ある箇所で変更すると、クラス属性は
  • に変更される.
  • クラス属性の設定と変更は、クラスによって
  • を完了する必要がある.
  • 次はクラス属性の書き方です.クラス属性はstaticで修飾され、courseCountはクラス属性で、学生が何科目を持っているかを記録するために使用されます.
  • class Student : NSObject {
        //  
        //  
        var age : Int = 0
        var name : String?
    
        var chineseScore : Double = 0.0
        var mathScore : Double = 0.0
    
        //  
        var averageScore : Double {
            get {
                return (chineseScore + mathScore) / 2
            }
    
            //  .newValue , 
            set {
                self.averageScore = newValue
            }
        }
    
        //  
        static var corseCount : Int = 0
    }
    
    //  
    Student.corseCount = 3
    //  
    print(Student.corseCount)
    

    以上がswiftの3つの属性の基本的な使用方法で、コメントを交流することを歓迎します!