-
面向过程与面向对象的概念总结查看全部
-
※※※※※※※※※※ 马克。需要重新看一遍 ※※※※※※※※※※ 一个对象创建完后都要使用构造函数进行初始化 没有func关键字 没有返回值 如果不写init函数,每个类也会有自己默认的构造函数 此外也可以设置自定义的初始化方法: class Person{ var name:String = "" //存储属性在创建的时候如果没有赋初始值 呢么在每一个构造函数中都要对它赋值 如下,两个init中都要对age赋值※ var age:Int //每个类也会有自己默认的构造函数 init(){ //函数体 println("这是初始化方法") ※self.age = 0 } //自定义的初始化函数 init(name:String,age:Int){ ※self.age = age self.name = name } // 析构函数 deinit 用来释放一个对象的资源 类似于dealloc方法 deinit{ println("人已经死亡") } func sleep)(){ println("这是一个人在睡觉") } } var p1 = Person(name:"lisi",age:22) //使用自定义的进行赋值创建p1 println("name=\(p1.name),age = \(p1.age)") //运行结果: name=lisi,age=22查看全部
-
class Person{ //创建一个类 Init(){ //创建初始化方法 println("这是一个人") } var name:String = "" // 定义一个属性 字符串类型 func sleep(){ //定义一个方法 println("这是一个人在睡觉") } } //class 是类的关键字 //Man 是当前类的类名 //冒号表示继承关系,冒号前是子类,冒号后面super class是父类 class Man:Person{ //表示类Man继承于类Person override init(){ //重写 super.init() println)("这是一个男人") } override func sleep(){ print("这是一个男人在睡觉") } } var m=Man() //m是Man的一个对象,在对Man定义属性和方法之前,m可以调用出Person的属性和方法 m.name="张三" println(m.name) //运行结果: 这是一个人张三 //运行结果: 子类与父类都被调用 因此要用“override”来重写父类方法 //override运行结果:这是一个人张三 这是一个男人张三 张三 (为什么都打印了?) m.sleep() //这是一个人在睡觉 ※ 如果一个类重写了父类的方法,会只调用自己类里面的方法 如果子类父类都想调用,可以用 super指针 super.sleep(){ // 会实现两个都调用打印 } ※查看全部
-
封装层次: 项目- 类 *n个类的实现- 属性 - get & set 方法- 具体的代码块查看全部
-
无法使用对象p调用 只能使用类Person调用des类查看全部
-
类属性——需要在前用class修饰,只能是计算属性,无法存储。并需要使用类去调用类属性 ※ class ※ var name:String{ get{ return "这是一个人" } }查看全部
-
使用 get{}: 赋值a 赋值b 赋值c println(sum)查看全部
-
var sum:Int{ get{ return a+b+c } }查看全部
-
延迟加载:在前加 “Lazy”查看全部
-
储存属性必需赋初始值查看全部
-
马克!查看全部
-
类&对象 √get查看全部
-
面向对象的编程:是各个功能模块都分别独立,各自发挥着自己的功能,需要单独面向编写。查看全部
-
按照事情发生的先后顺序或者是因果关系而进行的编程 叫做“面向过程编程”查看全部
-
类和对象查看全部
举报
0/150
提交
取消