Skip to content

Instantly share code, notes, and snippets.

@jemygraw
Created June 14, 2015 07:13
Show Gist options
  • Save jemygraw/d03397c87a5f97cc19e1 to your computer and use it in GitHub Desktop.
Save jemygraw/d03397c87a5f97cc19e1 to your computer and use it in GitHub Desktop.
basic class definition and function override
//define a class
class Shape{
var name :String
var numberOfSlides = 0
let pi :Float = 3.14
init(name :String){
self.name=name
}
deinit{
//something you want to do before the class object is dead
}
func simpleDesc() -> String{
return "A shape called \(self.name) with \(self.numberOfSlides) slides"
}
func circleArea(radius:Float) -> Float{
return self.pi * radius * radius
}
func rectangleArea(width :Float, height :Float) -> Float{
return width * height
}
}
var c1=Shape(name:"circle number 1")
c1.circleArea(10)
var r1=Shape(name:"rectange number 1")
r1.numberOfSlides=4
var r1Area=r1.rectangleArea(100, height: 12)
println(r1.simpleDesc())
println("r1 area \(r1Area)")
//overwrite a class
class RawShape{
let pi :Float = 3.14
var name :String
init(name:String){
self.name=name
}
func area()->Float{
return 0
}
func desc()->String{
return "this is a shape called \(name)"
}
}
class Circle : RawShape{
var radius :Float
init(radius :Float, name :String){
self.radius=radius
super.init(name:name)
}
override func area() -> Float {
return pi * radius * radius
}
override func desc() -> String {
return "this is cicle called \(self.name)"
}
}
var c2 = Circle(radius: 10, name: "CIR1")
println(c2.area())
println(c2.desc())
c2.name="CIR BIG"
c2.radius=135
println(c2.area())
println(c2.desc())
class Rectange : RawShape {
var width :Float
var height :Float
init(width :Float, height: Float, name :String){
self.width=width
self.height=height
super.init(name: name)
}
var areaVal :Float{
get{return self.width * self.height}
//explicit name for newValue
set(newAreaVal){
self.areaVal = newAreaVal
}
}
override func area()->Float{
return self.width * self.height
}
}
var r2 = Rectange(width:10,height:20,name:"BIG RECT")
println(r2.area())
println(r2.areaVal)
println(r2.desc())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment