zoukankan      html  css  js  c++  java
  • Swift -- 7.1 面向对象简介

    swift的面向对象特性

    虽然我学过c#,也学过java,但是,现在脑子里几乎想不起来关于他们的东西了OTZ

    swift可以定义三种面向对象类型:类, 枚举, 结构体

    虽然都是面向对象类型,但是只有类是引用类型,枚举和结构体依然是值类型

    也就是说,类的传值复制的是指针,而枚举和结构体的传值复制的是对象本身

     

    为什么有了类还有再定义枚举和结构体这种类型呢(枚举和结构体虽然是面向对象类型,却是值类型,使用起来性能不一样)

     

    面向对象类型有三大特性:封装,继承,多态

    封装就是把外界不需要的属性和方法隐藏起来,只提供部分接口来让外界来使用

    继承很好理解,swift仅支持单继承,然后提供了协议来弥补这个缺点

    多态还不知道怎么回事

     

    结构体和枚举在c语言中并没有面向对象的特性,但是swift重新定义了他们,并且赋予了他们面向对象的功能

    swift中,实例和对象是不同的,只有类的实例才能被

    定义了swift的任意类型之后,大致可以从5个方面来使用该类型:

    1 声明变量

    2 创建实例,但是枚举不能随意的创建实例,只能使用定义枚举时定义好的实例

    3 访问类型属性

    4 调用类型方法

    5 派生子类。但是swift只有类才支持继承,枚举和结构体都不支持继承,因此枚举和结构体都不能派生子类

  • 相关阅读:
    Spyder汉化问题
    Python配置环境变量
    Python、Spyder的环境搭建
    自然语言处理(六)词向量
    自然语言处理(五)深度学习
    自然语言处理(三)主题模型
    自然语言处理(四)统计机器翻译SMT
    自然语言处理(二) 语言模型
    自然语言处理(一)基础知识
    机器学习(九)隐马尔可夫模型HMM
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/5590924.html
Copyright © 2011-2022 走看看