import Foundation /* 1.class表示类的关键字 2.class后面表示类名 3.类名后面的大括号内表示类的内部 */ /* 1.属性封装了set和get方法 2.方法里面封装了具体的代码块 3.类封装了属性和方法 4.一个项目封装了多个类 */ class Person { /* 属性: Swift中有三种属性:1.存储属性 2.计算属性 3.类属性 */ // 储存属性: 主要用于存储一个对象中的变量或者常量(和OC实例变量很像) // 注意存储属性必须要赋初始值 var name: String = "" var age: Int = 20 var english = 0 var mach = 0 var chinese = 0 // 延迟储存属性:让某些资源在用到的时候再去加载, 也就是OC中的懒加载 // 避免了一些资源的浪费 lazy var dog = Dog() // 计算属性: 不是用来储存属性的值, 主要为我们提供个属性的get和set方法, // 我们可以通过重写get和set方法, 对属性值做一些简单的运算 // 注意1: 计算属性不能赋初始值 // 注意2: 提供get和set方法 var sum: Int {
// 如果只是只读属性, 则只有get方法, get关键字和大括号都可以省略 return english + mach + chinese } // 类属性: 用class修饰, 只能是计算属性, 不能使用储存属性 // 使用类名调用类属性 class var des: String { get { return "这是一个人" } } /*- 方法 -*/ func sleep() { print("我在睡觉ingzzzzZZ...") } } class Dog { init() { print("这是一只狗") } } // p就是Person类的一个对象 // Person()是一个默认的构造方法 var p = Person() p.name = "张三" //print(p.name) //print(p.dog) p.english = 82 p.mach = 100 p.chinese = 90 //print(p.sum) print(Person.des) // 方法的调用, 也是使用点语法 //p.sleep()