2015-09-05 85 views
-1

你好那裏我想創建簡單的類來獲取類間快速的信息流,但在這裏我可以看到沒有錯誤沒有輸出。操場太驚訝地分析這個人:')爲什麼我沒有得到任何輸出

import UIKit 
class namesShape { 
    var numberofSides : Int = 0 
    var name : String 
    init (name : String){ 
    self.name = name 
    } 
    func simpleDescription() -> String{ 
    return "the shape name is : \(name) " 
    } 
} 


class square :namesShape { 

    var sideLength : Double 
    init(name : String , sideLength : Double){ 
    self.sideLength = sideLength 
    super.init (name: name) 
    numberofSides = 4 
    } 
    func area() -> Double{ 
    return sideLength*sideLength 
    } 

} 



class triangle : namesShape { 
    var sideLength : Int 
    init(name :String , sideLength : Double){ 
    super.init (name: name) 
    self.sideLength = sideLength 
    numberofSides = 3 
    } 

} 
let Square1 = square(name : "square1" , sideLength : 10) 
println(Square1.area()) 
println(Square1.name) 

回答

0

兩個問題:

  • 變量sideLengthtriangle聲明爲Intinit方法具有Double參數。由於Swift的類型安全,類型必須匹配。

  • trianglesuper.init

    必須初始化變量sideLength

這裏後,被稱爲完整的代碼與建議的命名約定,變量和方法開始以小寫字母,類,結構和枚舉開始用大寫字母。

import Foundation 

class NamesShape { 
    var numberofSides : Int = 0 
    var name : String 
    init(name : String) { 
    self.name = name 
    } 
    func simpleDescription() -> String{ 
    return "the shape name is : \(name) " 
    } 
} 


class Square : NamesShape { 

    var sideLength : Double 
    init(name : String , sideLength : Double) { 
    self.sideLength = sideLength 
    super.init(name: name) 
    numberofSides = 4 
    } 
    func area() -> Double{ 
    return sideLength * sideLength 
    } 
} 

class Triangle : NamesShape { 
    var sideLength : Double 

    init(name : String, sideLength : Double) { 
    self.sideLength = sideLength 
    super.init(name: name) 
    numberofSides = 3 
    } 

} 

let square1 = Square(name : "square1" , sideLength : 10) 
print(square1.area()) 
print(square1.name) 
+0

非常感謝您的幫助。你能向我解釋爲什麼三角啓動是在sideLength之後。我的意思是,當我切換它的作品,但爲什麼? :) – dkfloza

+0

'init(name:String)'是類NamesShape的指定初始值設定項。有一條規則(來自文檔):*指定的初始化程序必須確保在其委託給超類初始化程序之前,其類所引入的所有屬性都被初始化。 – vadian

相關問題