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

    }

  • 相关阅读:
    叶问14
    叶问13
    叶问12
    叶问11
    叶问10
    叶问9
    Java三种循环之间的区别
    利用Java对象数组制作简易学生管理系统
    什么叫java方法重载?
    Java编译器的常量优化
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5585234.html
Copyright © 2011-2022 走看看