以下のコードが正しいかも含めての質問になります。
XCode9.0でSwift4のコードになります。

下記コードで実行しようとしたところ
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=2, address=0x7fff5c02cff8).という例外が発生しました。
1.理由をご教示いただきたいです
2.そもそも下のコードは誤りでしょうか?
クラス内に自身のインスタンスを持ったり、自身のインスタンスの宣言
 自身のインスタンスを格納する配列定義等は可能でしょうか?

class Test{
    var test:Double{
        get{
            return self.test+100
        }
        set(a){
            self.test=a
        }
    }

    var testList:Array<Test> = Array()

    init(a:Double){
        self.test = a
        addTest(a:a)
    }

    func addTest(a:Double){
        let t:Test = Test(a:a)
        testList.append(t)
    }
}

var test1:Test = Test(a:1)  ※←例外表示場所
print(test1.testList[0].test)