Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active February 7, 2016 03:10
Show Gist options
  • Save KentarouKanno/2e296b3ab02ca962ab75 to your computer and use it in GitHub Desktop.
Save KentarouKanno/2e296b3ab02ca962ab75 to your computer and use it in GitHub Desktop.
Class

Class

class MyClass {
    
    // インスタンス変数
    var varStoredValue = ""
    var varComputedValue: String { return "" }
    
    // インスタンス定数
    let letStoredValue = ""
    // let letComputedValue: String { return "" }              // 宣言不可
    
    // インスタンス・メソッド
    func method() {}
    
    // クラス変数
    static var staticVarStoredValue = ""
    static var staticVarComputedValue: String { return "" }
    
    // class var classVarStoredValue = ""                       // 宣言不可
    class var classVarComputedValue: String { return "" }
    
    // クラス定数
    static let classLetValue = ""       // サブクラスでのオーバーライド不可
    // static let staticLetComputedValue: String { return "" }  // 宣言不可
    
    // class let classLetStoredValue = ""                       // 宣言不可
    // class let classLetComputedValue: String { return "" }    // 宣言不可
    
    // クラス・メソッド
    static func staticMethod() {}       // サブクラスでのオーバーライド不可
    class func classMethod() {}
}

// -- Usage --

var myClass = MyClass()

// インスタンス
myClass.varStoredValue
myClass.varComputedValue

myClass.letStoredValue

myClass.method()

// クラス
MyClass.staticVarStoredValue
MyClass.staticVarComputedValue
MyClass.classVarComputedValue

MyClass.classLetValue

MyClass.staticMethod()
MyClass.classMethod()

★ クラス生成

class Sample {
    required init() { }
    
    class func create() -> Self {
        return self.init()
    }
}

var sample = Sample()

var sample = Sample.create()

Access Control

★ Private

private class privateClass {

}

★ internal(Default)

internal class internalClass {
    
}

★ public

public class publicClass {
    
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment