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()