swift面向对象详解

来源:互联网 发布:数据去噪算法 编辑:程序博客网 时间:2024/05/16 09:34

swift的面向对象(主要包括如何创建类,创建和使用类方法,类的继承,类的扩展,如何使用接口及协议 命名空间(在同一个类,在不同的类))


//

//  main.swift

//  SwiftObjectFromJike

//

//  Created by ytdxxt on 14-12-11.

//  Copyright (c) 2014 xutao. All rights reserved.

//


import Foundation

//1、创建类的方法

class sayHi {

    

    

    //构造方法

    var _name : String

    init(name:String){

        _name=name

        

    }

    

    func printIt(){

    println("Hello Swift \(_name)")

    

    }

    //2.类方法

    class func sayHello(){

    println("Hi Swift")

    }

}

var h=sayHi(name: " xutao")

h.printIt()

sayHi.sayHello()

//3.继承


class inherit: sayHi {

    //重写方法

   

    override func printIt() {

        //执行父类的方法

        super.printIt()

        println("overWrite \(_name)")

    }

}


var hi=inherit(name: "big xu")

hi.printIt()

//4.类的扩展

extension  sayHi{

    func printSecond(){

    

    println("extension")

    

    }



}

var hi2=sayHi(name: "Swift")

hi2.printSecond()

hi2.printIt()



//5.如何使用接口(协议)

protocol people{


    func getName()->String


}

class Male:people{

    func getName() -> String {

        return "protocol"

    }

}


var pro = Male()

println("my class is \(pro.getName())")


//6.命名空间

class first{


    class second {

        class third {

            func nameH(){

            

            println("nameSpace")

            

            }

        }

        

    }



}


var nameSpace=first.second.third()

nameSpace.nameH()


class firstSpace {

    class secondSpace {

    

    }

}

//通过扩展的方式添加类在同一个命名空间下,添加更多的类

extension firstSpace.secondSpace{


    class sayNameSpace {

        func nameSpace(){

        

        println("classFirst")

        

        }

    }

}


extension firstSpace.secondSpace{


    class sayNameSpaceSec {

        func nameSpaceSec(){

        

        println("classSecond")

        

        }

    }

}


var nameSpaceExtension=firstSpace.secondSpace.sayNameSpaceSec()

nameSpaceExtension.nameSpaceSec()



//通过建多个类的方式

myswift类

class hello {

    class jkxy {

    

    }

}

Hi类

extension hello.jkxy{

    class hi {

        func sayHi(){

        println("hi jikexueyuan")

        

        }

    }

}

Hello类

extension hello.jkxy{


    class hello {

        func sayHello(){

        

        println("Hello jkxy")

        }

    }


}



var hh=hello.jkxy.hello()

hh.sayHello()

var hhh=hello.jkxy.hi()

hhh.sayHi()



0 0
原创粉丝点击