美文网首页
结构体与类的区别

结构体与类的区别

作者: 写啥呢 | 来源:发表于2016-08-19 16:47 被阅读0次

结构体与类的讲解(区别)

注意事项: 结构体中的方法在默认情况下是不允许修改结构中的属性除非加上mutating

class Student1 {
    var name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
    
    func study(name: String) {
        print("\(name) 正在学习 .")
    }
}

struct Student2 {
    var name: String
    var age: Int
    
//    init(name: String, age: Int) {
//        self.name = name
//        self.age = age
//    }
//    结构中的方法在默认情况下是不允许修改结构中的属性除非加上mutating
   mutating func changeage() {
        age += 1
    }
}
// 计算机的硬件由五大部分构成:
// 运算器、控制器、存储器、输入设备、输出设备
// 运算器 + 控制器 => CPU(中央处理器)
// 存储器(RAM - Random Access Memory)

// 程序员可以使用的内存大致分为五块区域
// 栈 (stack) - 我们定义的局部变量临时变量都是放在栈上
// - 特点: 小、快
// 堆 (heap) - �我们创建的对象都是放在堆上面的
// - 特点: 大、慢
// 静态区 (static area)
// - 数据段  全局变量放的地方
// - 只读数据段  -常量
// - 代码段  -函数和方法

// 结构的对象是值类型,类的对象是引用类型
// 值类型在赋值的时候会在内存中进行对象的拷贝
// 引用类型在赋值的时候不会进行对象拷贝只是增加了一个引用
// 结论: 我们自定义新类型时优先考虑使用类而不是结构除非我们定义的是一种底层的数据结构(保存其他数据的类型)

// 结构会自动生成初始化方法
//let stu1 = Student1(name: "wang ", age: 15)
//var stu4 = stu1  // 此处内存中任然只有一个学生对象
//stu4.age = 50
//stu4.name = "哼哼哈哈"
//print(stu1.age)
//print(stu1.name)
//
//
//let stu2 = Student2.init(name: "aa", age: 13)
//var stu3 =  stu2 // 此处内存中会有两个对象
//stu4.name = "王大锤"
//stu4.age = 18
//print(stu2.name)
//print(stu2.age)



相关文章

  • 第九章 类和结构体

    c++中,结构体是稍有不同的类,类能做的,结构体也可以; 而swift中,结构体与类有较大区别, 结构体与类的区别...

  • Swift5 _07_多态原理_初始化

    多态 结构体struct与类class 的区别(1)结构体是值类型、类是引用类型(2)类可以继承,结构体不能继承(...

  • 结构体和类的一些简单区别

    结构体和类的区别 1.写法区别: 结构体-struct 类-cl...

  • Note 7 类和结构体

    结构体 类 定义 类的属性 成员变量 静态变量 成员方法 类方法 与结构体的区别 用let定义的结构体变量,成员不...

  • 类与结构体探索1-定义、区别、初始化器

    类与结构体的定义 类与结构体定义,除了使用的关键字不同,其他看似相同,但有本质区别。 结构体和类的主要相同点有:定...

  • 面经---依依短租

    1. 结构体、共用体、类 C++中结构体与类的区别: 结构体中的成员访问权限不声明时候默认是 public 的,而...

  • 类与对象一

    1.类与对象 1.1类 1.1.1是结构体的升级,用于定义变量的数据类型1.1.2与结构体的区别1.1.2.1关键...

  • Swift学习

    Swift类与结构体的区别 struct People {var name : Stringinit(name :...

  • Swift 中类与结构体(一)

    这里我们主要通过三个方面来阐述类与结构体的区别,首先是类与结构体的区别以及它们之间的相同点。第二点就是了解类的初始...

  • Swift笔记<十五>结构体和类的区别

    结构体和类的区别 结构体有逐一构造器,类没有 结构体是值类型,类是引用类型 结构体不是继承(意味着没有多态)

网友评论

      本文标题:结构体与类的区别

      本文链接:https://www.haomeiwen.com/subject/covbsttx.html