一:

主要内容

  • 类的介绍和定义
  • 类的属性
  • 类的构造函数

一. 类的介绍和定义

  • Swift也是一门面向对象开发的语言
  • 面向对象的基础是类,类产生了对象
  • 在Swift中如何定义类呢?
    • class是Swift中的关键字,用于定义类
class 类名 : SuperClass {
// 定义属性和方法
}
  • 注意:

    • 定义的类,可以没有父类.那么该类是rootClass
    • 通常情况下,定义类时.继承自NSObject(非OC的NSObject)
    • import UIKit
      
      /*
      1.类的定义
      2.创建类对应的对象
      3.给类的属性赋值
      1> 直接赋值
      2> 通过KVC赋值
      4.可以重写setValue(value: AnyObject?, forUndefinedKey key:,那么字典中没有的字段可以在类中没有对应的属性
      5.override : 重写, 如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override
      */ class Person : NSObject {
      var age : Int = // override : 重写, 如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override
      override func setValue(_ value: Any?, forUndefinedKey key: String) {
      }
      } let p = Person()
      //p.age = 20 p.setValuesForKeys(["age" : , "name" : "why"])
      print(p.age)
    • import UIKit
      
      class Person : NSObject {//class:声明类的关键字,声明一个类时,可以继承,也可以不去继承
      //定义类的属性:可选类型定义,表示可以为nil也可以不为nil
      var name : String?
      var age : Int =
      var height : Double = 0.0
      } let p = Person()//创建对象 // 注意:赋值不是调用set方法,直接拿到属性给属性赋值:继承NSObject也可以利用kvc赋值,若是类属性中找不到对应的key值,会产生崩溃,可以在类中重写setvalueforUnderdefinekey来实现
      p.name = "why"
      p.age =
      p.height = 1.88

最新文章

  1. 使用PhantomJS实现网页截图服务
  2. Redis高可用分布式内部交流(九)
  3. .Net Core Linux centos7行—.net core json 配置文件
  4. backbone event 事件订阅 和发布 源码小读
  5. android ListView的怪异现象
  6. 【BZOJ 2440】[中山市选2011]完全平方数
  7. Bzoj 4034: [HAOI2015]T2 树链剖分,子树问题,dfs序
  8. mysql报错"ERROR 1206 (HY000): The total number of locks exceeds the lock table size"的解决方法
  9. SQL远程备份
  10. Android_NDK问题:APP_BUILD_SCRIPT points to an unknown file: <project_path>/jni/Android.mk
  11. C C++ 中结构体与类
  12. oracle job执行失败
  13. Python全栈开发之路 【第八篇】:面向对象编程设计与开发(2)
  14. Python中何时使用断言 assert
  15. vue组件库(四):组件功能模块划分
  16. HDU1272小希的迷宫–并查集
  17. ajax和302(转)
  18. CSS2.0中最常用的18条技巧
  19. Linux更改主机名
  20. UVALIve 5987 素数

热门文章

  1. Dubbo简易学习
  2. day 5 集合
  3. 【Codeforces Round #456 (Div. 2) B】New Year's Eve
  4. 【Uva 12093】Protecting Zonk
  5. Mybatis 一对多 多对1
  6. hdu5308 I Wanna Become A 24-Point Master(构造)
  7. 兔子--百度地图所需的jar+so下载地址
  8. ThreadLocal使用演示样例
  9. java三元表达式编程规范问题
  10. JS前端监控机制的建立