Swift 基础知识Part2

import Foundation

print("Hello, World!")
// 类的定义
class Person {
    // 定义属性
    var name: String!
    var age:Int!
    // 定义一个计算属性
    var number:Int {

        get {

            return 10
        }set{


            print(newValue)
        }

    }
    // 类方法
    static func test(){

        print("你好八戒")
    }
    // 这个也是类方法 但是用class 修饰的类方法 子类可以重写这个类方法
    class func sayHello(){

    print("hello")

    }

    //实例方法
    func sayHi(){


        print("hi")
    }

    // 构造函数(重写init方法)
    init (name:String,age:Int){


        self.name=name
        self.age=age

    }

    // 无参init 方法
    init(){


    }
}
// 继承

class Student: Person {
    // 重写父类方法 关键字
    override class func sayHello(){

        print("帅哥")
    }
}


// 创建对象

var p1=Person(name:"jiangchen", age: 18)
p1.name="江晨"
p1.age=18
var stu1=Student(name: "江晨", age: 20)
Person.test()
Person.sayHello()
Student.sayHello()



// 协议
protocol myProtocol{

    // 默认必须要实现
    func test()
}

// 这个协议的方法是可选择的
@objc protocol myProtocol1{

    optional func test1()

}


// 遵循协议
class Teacher:myProtocol,myProtocol1 {

    // 实现协议的方法
    func test() {

        print("哈哈")
    }
    // 这个是可选的方法
    @objc func test1() {
        print("你是可选的")
    }
}




// 创建对象teacher
var tea=Teacher()
tea.test1()


// 类目
class 八戒 {
    func test(){

        print("八戒")

    }
}
extension 八戒{

    func test1(){
        print("八戒正在讲课")

    }

}

//创建对象
var ��=八戒()
��.test1()
��.test()


protocol myProtocol2{


    func eat()

}
// 延展(类目) 不仅可以给类添加私有方法,还可以给类添加(延展出来的)协议
extension 八戒:myProtocol2{

    func eat() {
        print("还在吃呢")
    }

}
��.eat()

// 值类型引用 和 
struct rect {
    var name:String!
    var age:Int!

}
class rect1{

    var name:String!
    var age:Int!
    init (name:String ,age:Int){


        self.name=name
        self.age=age
    }

}

// 创建对象

var re1=rect(name: "小八戒", age: 18)
var re2=re1
re1.name="大八戒"
print(re2.name)

var re3=rect1(name: "中八戒", age: 20)
var re4=re3
re3.name="老八戒"
print(re4.name)

// 在swift中这就是闭包 (也就是oc中的block)
typealias  block = ()->Void
var rest :block={


    print("小小的block")
}
rect()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值