美文网首页
Swift-类和对象

Swift-类和对象

作者: XTK_iOS | 来源:发表于2019-05-14 17:02 被阅读0次
  • 枚举类型
// 定义枚举
enum Type {
    case sports
    case sedan
    case SUV
}

var type = Type.sports
  • 便利构造器
// 定义枚举
enum Type {
    case sports
    case sedan
    case SUV
}

class Car {
    // 全局变量
    var color = "black" //颜色
    var seats = 5 //座位
//    var type = Type.sports
    var type:Type = .sports // 车型

    // 初始化构造器 这个class 被实例化时执行的代码 -- 定制汽车
    init(color: String, seats: Int, type: Type) {
        // 加self 是为了 引用全局变量
        self.color = color
        self.seats = seats
        self.type = type
    }
}

// 构造器--调用
let myCar = Car(color: "red", seats: 2, type: .sports)

print(myCar.color)
print(myCar.seats)
print(myCar.type)
  • 便利构造器
// 定义枚举
enum Type {
    case sports
    case sedan
    case SUV
}

class Car {
    // 全局变量
    var color = "black" //颜色
    var seats = 5 //座位
//    var type = Type.sports
    var type:Type = .sports // 车型

    // 初始化构造器 这个class 被实例化时执行的代码 -- 定制汽车
    init(color: String, seats: Int, type: Type) {
        // 加self 是为了 引用全局变量
        self.color = color
        self.seats = seats
        self.type = type
    }
    
    // 便利构造器--实例化的时候不需要任何参数,全部默认
    convenience init() {
        self.init(color: "black", seats: 2, type: .sports)
    }
    // 便利构造器--有参数
    convenience init(color: String) {
        self.init(color: color, seats: 2, type: .sports)
    }
}

// 便利构造器--调用
let myCar = Car() // 无参数
let myCar = Car(color: "black") // 有参数

print(myCar.color)
print(myCar.seats)
print(myCar.type)
  • 类的继承
// 汽车类--父类--super class
class Car {
    func driving(){
        print("启动, 给油, 移动")
    }
}

////////////////////继承/////////////////////
// 创建一个 特斯拉汽车类 继承 汽车类
// Car:父类 Tesla:子类
// 子类拥有父类所有的属性和函数
// 子类--subclass
class Tesla:Car {
    
}

let myCar = Tesla()
//driving 这个方法只有在 Car 这个类被实例化之后 才可以进行调用
myCar.driving() // 启动, 给油, 移动


举例:继承概念
父类 -- 动物类:animals  有呼吸功能
class Animals {
    func breathe() {
       // breathing functionality
    }
}

子类 -- 鸟类继承动物类:brids   不仅有呼吸功能还有飞的功能
class brids:Animals {
    func fly() {
        // Flying functionality
    }
}

子类 -- 哺乳动物类继承动物类:mammals   不仅有呼吸功能还有头发
class Mammals:Animals {
    var hasHair = true
}

子类 -- 人类继承哺乳动物类:humans   不仅有呼吸功能还有头发还可以进行编程
class Humans:Mammals {
    func userComputer() {
        // computer user functionality
    }
}
  • 类的重写-override
// 汽车类--父类--super class
class Car {
    func driving(){
        print("启动, 给油, 移动")
    }
}

////////////////////重写/////////////////////
// 创建一个 特斯拉汽车类 继承 汽车类
// Car:父类 Tesla:子类
// 子类拥有父类所有的属性和函数
class Tesla:Car {
    override func driving() {
        //拥有父类的所有功能
        super.driving()
        //自己的功能
        print("自己到目的地")
    }
}

// 调用
let myCar = Car()
//driving 这个方法只有在 Car 这个类被实例化之后 才可以进行调用
myCar.driving() // 启动, 给油, 移动    自己到目的地


举例:重写概念
父类 -- 动物类:animals  有呼吸功能
class Animals {
    func breathe() {
       // breathing functionality
    }
}

// 重写是为了 既不丢失父类的功能 又可以 追加自己的功能
// 定义一个鱼类,它有呼吸功能,但是鱼既可以在水下呼吸也可以在空气中呼吸
class Fish:Animals {
    override func breathe() {
        //super 代表父类:Animals
        super.breathe()
        
    }
}
  • optional--可选型
// 汽车类--父类--super class
class Car {
    func driving(){
        print("启动, 给油, 移动")
    }
}

// 子类--subclass
class Tesla:Car {
    
    //optional--可选型
    // ?:不确定是否有值
    var dest:String?
    
    override func driving() {
        // 拥有父类的所有功能
        super.driving()
        // 自己的功能
        // 强制解包--wrap 不推荐使用,容易导致闪退
//        if dest != nil {
//            print("自己到目的地\(dest!)")
//        }
        // 可选绑定 -- 简称 if let
        if let userDest = dest {
            print("自己到目的地\(userDest)")
        }
    }
}
  • extension--扩展
// 扩展--分离出代码,方便维护
extension ViewController {
    
}
  • struct -- 结构体
// 结构体约等于--class 不需要init,是一直轻量级的class
struct <#name#> {
    <#fields#>
}

相关文章

  • Swift-对象和类

    类 使用class后跟类的名称来创建类。 类中的属性声明的写法与常量或变量声明相同。 同样,方法和函数声明的写法也...

  • Swift-类和对象

    枚举类型 便利构造器 便利构造器 类的继承 类的重写-override optional--可选型 extensi...

  • swift-类属性

    了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻[https://www.ji...

  • Swift- 对象和类(Objects and Classes)

    使用class后面跟随类的名字,来创建一个类。属性的写法同变量和常量的写法是一样的,只不过上下文是类。方法和函数同...

  • iOS复习之重写与重载

    iOS面向对象的三大特征 封装、继承、多态 Swift-重写与重载的使用和比较

  • Swift-进阶 02:类、对象、属性

    Swift 进阶之路 文章汇总[https://www.jianshu.com/p/5fbedf309237] 本...

  • 对象、类对象和元类对象

    http://www.tuicool.com/articles/mmyuUr http://blog.csdn.n...

  • python 类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的...

  • 类,类对象和实例对象

    Python 的类定义写完之后就成了一个类对象,而引用这个类对象的就是实例对象。 类中定义的属性和方法都是静态属性...

  • 面相对象-02类和对象

    类和对象 目标 ●类和对象的概念●类和对象的关系●类的设计 01.类和对象的概念 类和对象是面向对象编程的两个核心...

网友评论

      本文标题:Swift-类和对象

      本文链接:https://www.haomeiwen.com/subject/oeheaqtx.html