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
      
时间: 2024-10-13 14:02:36

swift学习第十一天:类的定义的相关文章

JavaScript学习总结(十一)——Object类详解

一.Object类介绍 Object类是所有JavaScript类的基类(父类),提供了一种创建自定义对象的简单方式,不再需要程序员定义构造函数. 二.Object类主要属性 1.constructor:对象的构造函数. 2.prototype:获得类的prototype对象,static性质. 三.Object类主要方法 1.hasOwnProperty(propertyName) 判断对象是否有某个特定的属性.必须用字符串指定该属性,例如,obj.hasOwnProperty("name&q

Python学习笔记2:类的定义和继承

# 类的定义 格式: class 类名(父类): __init(self,参数) 成员方法 成员变量 # 所有类的基础object #  私有方法和变量使用__开头 例如:定义一个鸟类 class Bird(object): __have_feather = True # 私有属性:是否有羽毛 way_of_reproduct = "egg" # 公有属性:繁殖方式 def move(self, dx, dy): # 公有方法 position = [0,0] position[0]

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

类的属性介绍 Swift中类的属性有多种 存储属性:存储实例的常量和变量 计算属性:通过某种方式计算出来的属性 类属性:与整个类自身相关的属性 存储属性 存储属性是最简单的属性,它作为类实例的一部分,用于存储常量和变量 可以给存储属性提供一个默认值,也可以在初始化方法中对其进行初始化,而且必须得有默认值,否则会报错 下面是存储属性的写法 age和name都是存储属性,用来记录该学生的年龄和姓名 chineseScore和mathScore也是存储属性,用来记录该学生的语文分数和数学分数 clas

java入门学习笔记之1(类的定义,代码的编译执行)

这篇文章讲解Java代码的基本执行过程 我们先抛开各种JAVA IDE,开发工具,只使用文本编辑器,以突出最本质的东西. 在Linux环境下,我们编辑一个文件: vim HelloWorld.java 编辑如下代码: 1 public class HelloWorld{ 2 String name; 3 public HelloWorld(String name){ 4 this.name = name; 5 } 6 public void pHelloWorld(){ 7 System.out

swift学习笔记(四)关于类的继承

在swift中,继承是区分类与其它对象的基本特征 继承后的子类能够重写父类的方法,包含类方法和实例方法,属性和附属脚本(subscript) 在继承过程中,构造器方法init()是不被继承的,须要显示标明 class Tandem: Bicycle { init() { super.init() maxPassengers = 2 }  } 子类仅仅能够改动从父类继承来的变量属性,而不能够改动常量let属性 关于重写override 重写方法:能够通过super.function来重写父类的方法

Swift学习笔记九:类 Class

构造函数 非 Optional 属性, 都必须在构造函数中设置初始值, 从而保证对象在实例化的时候, 属性都能被正确的初始化 构造函数的目的: 给自己的属性分配空间并且设置初始值 在调用父类的构造函数之前, 必须保证本类的属性都已经完成初始化 调用父类的构造函数, 给父类的属性分配空间并且设置初始值 如果重载了构造函数, 并且没有重写父类的 init 方法,系统不再提供 init 构造函数(默认是会有的), 因为默认的构造函数, 不能给本类的属性分配空间 // Person 类没有 '初始化器'

python cookbook第三版学习笔记十一:类和对象(二)调用父类的方法

在子类中调用父类的方法,可以下面的A.spam(self)的方法. class A(object):     def spam(self):         print 'A.spam' class B(A):     def spam(self):         print 'B.spam'         A.spam(self) if __name__=='__main__':     b=B()     b.spam() 但是上面的代码有一个问题,如果B的父类变更了,而且有很多子类的父

Swift学习笔记十一:方法

passport.baidu.com/?business&un=%E6%9C%94%E5%B7%9E%E5%B0%8F%E5%A7%90%E5%8C%85%E5%85%BB#0 passport.baidu.com/?business&un=%E5%BF%BB%E5%B7%9E%E5%B0%8F%E5%A7%90%5F%E6%89%BE%E6%9C%89#0 passport.baidu.com/?business&un=%E8%A6%81%E5%A4%AA%E5%8E%9F%E5

Swift学习——类的定义,使用,继承,构造等(五)

Swift学习--类的定义,使用.继承,构造等(五) 类的使用说明 1 使用class和类名来创建一个类名,比如: class student 2 类中属性的声明和常量和变量一样,唯一的差别就是他们的上下文是类 3 方法和函数声明也一样 // 1 ---- 简单的类介绍 class Student{ //变量学号初始化为0 var num = 0; //成员函数 func GetNum()->Int{ return num } } //创建类的实例对象 var student = Student