• 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("不同")

    }

  • 相关阅读:
    JVM调优之Tomcat启动参数配置及详解
    项目启动部署时报错:java.lang.NoSuchMethodError
    Springboot系列:@SpringBootApplication注解
    Tomcat下部署SpringBoot
    springboot 使用传统方式部署
    Spring Boot 学习笔记一(SpringBoot启动过程)
    Spring Boot【快速入门】
    Windows系统CPU内存网络性能统计第一篇 内存
    MinGW-w64非官方编译器集成安装包(很清楚)
    SyncML是一平台无关的信息同步标准协议集
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5585234.html
Copyright © 2020-2023  润新知