您的当前位置:首页正文

swift面向对象特性——类和结构体

来源:要发发知识网

类和结构体的定义

类的语法格式为:

class 类名
{
        //在这里定义类的内容
}

结构体的语法格式为:

struct 结构体名称
{
        //在这里定义结构体的内容
}

Swift中类和结构体的名称都以大写字母开头。类的方法和属性使用小写字母开头
eg_类:

class Student{
        var number:Int = 0
        var name:String = ""
        var height:Int = 0
        var weight:Int = 0
        fun demo(){
           print("Student")
       }
}

let stu Student()
stu.demo()

eg_结构体:

struct Person
{
    var name:String = "张三"
    var age:Int = 20
}
let per = Person()
print("名字:\(per.name)")
print("名字:\(per.age)")

定义结构体时,所包含的属性都有默认值,此时构造结构体实例

var per Person()

如果结构体中的属性没有默认值,那么使用结构体的构造函数来实例化结构体。

var stu = Student(name,"小明",age:10)

在swift结构体中,还可以定义方法。

struct Teacher
{
    var name : String
    var age: Int
    var knowledge:String
    fun teachStudent()->String
   {
    return knowledge
   }
}

Swift提供了两个恒等式运算符(===和!==)用来监测两个常量或者变量是否引用同一个类实例。
在Swift中,只有类类型是引用类型,其余的一切都是值类型。所以结构体的实例,以及实例中所包含的任何值类型属性,在代码中传递的时候都会被复制。
结构体是值类型,当一个值类型实例作为常量而存在,它的所有属性也将作为常量而存在。而这个特性对类并不适用,因为累是引用类型。如果将引用类型的实例赋值给常量,依然能够改变实例的变量属性。