zoukankan      html  css  js  c++  java
  • swift -- 类和结构体

    1.类和结构体的语法定义

    //类的定义

    class Person {

        //声明属性 : 必须赋予初始值

        var name = ""

        var age : Int = 1

        //在类里面声明一个结构体类型的属性:结构体的对象必须初始化

        var frame : Frame = Frame.init()

    }

    //结构体的定义

    struct Frame {

        //声明属性

        var point : Int = 1

        var rect : Int = 1

    2.类和结构体实例

    //类的实例化

    var person1 = Person.init()

    //结构体的实例化

    var frame = Frame.init()

     3.访问属性

    //类访问属性

    person1.name = "wo"

    //结构体访问属性

    frame.point = 3

     4.类和结构体的 混合应用

    person1.frame.point = 44

     5.结构体类型的成员 逐一构造器(类不存在逐一构造器)

    let frame2 = Frame.init()

    let frame3 = Frame.init(point: 1, rect: 2)  //能够给所有的属性赋值

    let person2 = Person.init()    //类不存在逐一构造器

    6.结构体 是值类型

    //值类型特点: 当用一个值类型的对象给另一个对象赋值时,系统执行的是 拷贝 操作

    var frame4 = Frame.init(point: 10, rect: 30)

    var frame5 = frame4  //赋值 copy操作

    frame4.point = 300

    frame5.point = 400

    print(frame4.point , frame5.point)    // 300   400

    7.类 是引用类型

    //引用类型的特点: 当用一个 引用类型的对象给另一个对象赋值时,系统只是做了指针改变指向的改变,内存中没有拷贝

    var person3 = Person.init()

     person3.age = 100

    var person4 = person3       //这两个对象 的 指向相同,没有拷贝操作

     print(person3.age , person4.age)    //  100

    8.恒等运算符 === (3个等号)

    //只能判断两个类创建的对象是否相同(比较的是内存地址)

    if person3  === person4{

        print("相同")

    }else{

        print("不同")

    }

  • 相关阅读:
    CSS流式布局 仿京东
    Flex 实现仿 携程网 手机端布局
    JS 实现 微信随机发红包思路
    记录gradle 使用笔记
    springBoot入门
    支付宝当面付扫码支付功能详解
    微信验证以及登录流程
    Nginx配置文件详细说明
    crontab定时任务打包备份文件并删除过期文件
    关于List比较好玩的操作
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5585234.html
Copyright © 2011-2022 走看看