Swift第三天学习

欢迎大家评论,问问题,质疑
import Foundation
class Dog : NSObject {
//重写父类的方法 override
override init() {

}

}
class Person : NSObject {
//存储属性
var age : Int!
//计算属性
var fatherAge : Int {
set {
self.age = newValue - 20
}
get{
return self.age + 20
}
}
//lazy
var dog : Dog = Dog()
//只读属性
var motherAge : Int {
get {
return 20
}
}
//类属性
static var gender : Bool! = true
//对象方法
func sayHellow(){

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

}
//初始化
init(age : Int ) {
    self.age = age
}

}
//结构体与类的区别
//1.结构体不能继承,类可以继承
//2.结构体是值类型,类的引用类型
//举下面这个例子
struct mao {//结构体
var name : String!
init(name : String){
self.name = name
}
}
//人 猫
var p : Person = Person(age: 12)
let p1 : Person = p
p1.age = 13
print(p.age)

var m : mao = mao(name: “花花”)
var m1 = m
m1.name = “喵喵”
print(m.name)

//extension
//在OC中,用extension可以扩充加号方法(调用的时候会先调用父类的),减号方法(先调用扩展的方法)
extension Person{
func study(){
print(“学习”)
}
}
p1.study()
//重写父类的方法
class Girl : Person{
override func sayHellow() {
print(“美女,你好”)
}
}
let girl = Girl(age: 16)
girl.sayHellow()

//协议
//必须实现的
protocol PersonProtocol {
func eat()
static func sayGoodBye()
var baby : String? {set get}
static var Girl : String? {get}
}
//不是必须实现的 两个关键字 @objc optional
@objc protocol MenProtocol {
optional func sayHi()
}
class Boy: NSObject,PersonProtocol,MenProtocol {
func eat() {

}
static func sayGoodBye() {

}
var baby : String? {
    set {

    }
    get{
        return "baby"
    }
}
static var Girl : String? {
    get {
    return "girl"
    }
}
func sayHi() {

}

}

//闭包
typealias block = ((Int,Int)->Int)
var myBlock : block! = nil
//实现
//一般用这个写法
myBlock = {(a : Int,b : Int)->Int in
print(“你打我呀”)
return 1
}
//调用
myBlock(1,2)

//$0代表第一个参数
myBlock = {

return $0 + $1

}
print(myBlock(1,2))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值