美文网首页
27 Swift面向对象概述

27 Swift面向对象概述

作者: 为了自由的白菜 | 来源:发表于2023-03-14 15:57 被阅读0次

    Swift面向对象概述

    面向对象的三大特性

    • 继承
    • 封装
    • 多态

    基本单元

    • 枚举
    • 结构体
    • 协议
    • 扩展

    面向对象概述

    • 从整体的功能上看Swift的枚举、结构体、类三者具有完全平等的地位
    • Swift的类、结构体、枚举中都可以定义(属性、方法、下标、构造体、嵌套类型)
    • 在Swift中,枚举和结构体是值类型的,类是引用类型

    类和结构体的相似点

    • 定义属性用来存储值
    • 定义方法用于提供功能
    • 定义下标脚本用来允许使用下标语法访问值
    • 定义初始化器用于初始化状态
    • 可以被扩展来默认所没有的功能
    • 遵循协议来针对特定类型提供标准功能

    类和结构体不同点

    • 继承允许一个类继承另一个类的特征
    • 类型转换允许你在运行检查和解释一个类实例的类型
    • 反初始化器允许一个类实例释放任何其所被分配的资源
    • 引用计数允许不止一个对类实例的引用

    枚举从此站了起来

    枚举语法

    • 用enum关键字来定义一个枚举,然后将其所有的定义内容放在一个大括号({})中
    • 多个成员值可以出现在同一行中,要用逗号隔开
    image-20230227222041009.png
    • 每一个枚举都定义了一个全新的类型。正如Swift中其他的类型那样,它们的名称(例如:CompassPoint和Planet)需要首字母大写。给枚举类型起一个单数的而不是复数的名字,从而使得它们能够顾名思义
    image-20230227222308005.png

    使用Switch语句来匹配枚举值

    • 你可以用Switch语句来匹配每一个单独的枚举值
    image-20230227222423910.png

    遍历枚举的case

    • 对于某些枚举来说,如果能有一个集合包含了枚举的所有情况就好了。你可以通过在枚举名字后面写:Caselterable来允许枚举被遍历。Swift会暴露一个包含对应枚举类型所有情况的集合名为allCases
    image-20230227222622537.png

    关联值

    • 可以定义Swift枚举来存储任意给定类型的关联值,如果需要的话不同枚举成员关联值的类型可以不同

    [左边是一个条形码]右边是一个二维码

    image-20230227222834312.png image-20230227222928192.png

    原始值

    • 枚举成员可以用相同类型的默认值预先填充(成为原始值)
    image-20230227223023173.png

    预设原始值

    • 当你在操作存储整数或字符串原始值枚举的时候,你不必显式地给每一个成员都分配一个原始值。当你没有分配时,Swift将会自动为你分配值
    image-20230228211050645.png

    从原始值初始化

    • 如果你用原始值类型来定义一个枚举,那么枚举就会自动收到一个可以接受原始值类型的值的初始化器(叫做rawValue的形式参数)然后返回一个枚举成员或者nil。你可以使用这个初始化器来尝试创建一个枚举的新实例
    image-20230228211335569.png

    递归枚举

    • 递归枚举是拥有另一个枚举作为枚举成员关联值的枚举。当编译器操作递归枚举时必须插入间接寻址层。你可以在声明枚举成员之前使用indirect关键字来明确它是递归的
    • 如说表达式(5 + 4) * 2在乘法右侧有一个数但有其他表达式在乘法的左侧
    image-20230228211628828.png image-20230228211753437.png

    相关文章

      网友评论

          本文标题:27 Swift面向对象概述

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