swift学习第十一天:类的定义

Posted Hello_IOS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift学习第十一天:类的定义相关的知识,希望对你有一定的参考价值。

一:

主要内容

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

一. 类的介绍和定义

  • 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 = 0
          
          // override : 重写, 如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override
          override func setValue(_ value: Any?, forUndefinedKey key: String) {
          }
      }
      
      
      let p = Person()
      //p.age = 20
      
      p.setValuesForKeys(["age" : 18, "name" : "why"])
      print(p.age)

       

    • import UIKit
      
      class Person : NSObject {//class:声明类的关键字,声明一个类时,可以继承,也可以不去继承
          //定义类的属性:可选类型定义,表示可以为nil也可以不为nil
          var name : String?
          var age : Int = 0
          var height : Double = 0.0
      }
      
      let p = Person()//创建对象
      
      // 注意:赋值不是调用set方法,直接拿到属性给属性赋值:继承NSObject也可以利用kvc赋值,若是类属性中找不到对应的key值,会产生崩溃,可以在类中重写setvalueforUnderdefinekey来实现
      p.name = "why"
      p.age = 18
      p.height = 1.88


以上是关于swift学习第十一天:类的定义的主要内容,如果未能解决你的问题,请参考以下文章

swift学习第一天---常量变量基础数据类型

swift学习第一天:认识swift以及swift的常量和变量

swift学习第十二天:类的属性定义

Swift学习第一天值字典

swift学习第十三天:类的构造函数

Java学习第一天