美文网首页
8.构造方法与析构方法

8.构造方法与析构方法

作者: LucXion | 来源:发表于2020-06-08 18:19 被阅读0次

指定构造方法,
便利构造方法,构造方法嵌套convenience
构造方法继承,
构造方法安全性检查4原则,
可失败构造方法,
必要构造方法
构造方法

class Student {
    
    var num:Int? // 可选值属性可以不在构造方法中设置初值,创建对象后默认值 = nil
    init(name:String) {
    }
    convenience init() {// 一个类可以有多个构造方法,并且嵌套使用,嵌套使用时需要加入convenience关键字
        self.init(name: "abc")
    }
}
struct School {
    var namr:String = ""
}
var s = School(namr: "abc")// 结构体会默认生成一个对应的构造方法

指定构造方法:不需要convenience关键字修饰的init
便利构造方法:需要convenience关键字修饰,内部调用指定构造方法
指定构造方法与便利构造方法在继承关系中的展现:默认子类继承父类所有指定、便利构造方法。如果子类重写了指定构造方法,那么父类中的便利构造方法将无法继承
重载和覆写的区别,重载是同名但不同参数,覆写是同名同参数但改实现
构造方法的安全性检查,便利构造方法要修改属性的值要在init后

class Student:People {
    var name:String
    
    override init(parama: String) {
        name = "abc" // 初始化属性不要用self,因为可能没有值
        super.init(parama: "d")
        key = "aaa" //调用父类的指定构造方法后才能给父类属性赋值
        self.name = "k"// 调用父类指定构造方法后self才算初始化完成,可以调用self
    }
}

可失败构造方法和必要构造方法

class People {
    var name = {
        return "key"
    }() // 通过闭包给存储赋值
    var key = {
        return "key"
    }// 只读的计算属性
    
    required init (name:String){ // 必要构造方法
        print(name)
    }
    init?(parama:Bool) { // 可失败构造方法,返回可选值
        guard parama else {
            return nil
        }
    }
}

析构方法:
关键字:deinit
常用于:在类实例将要销毁的时候将其中用到的资源释放掉,如关闭文件等操作都会放入析构方法中进行
触发条件:对象 = nil 或者 对象被销毁

相关文章

  • Java析构方法

    析构方法与构造方法相反,当对象脱离其作用域时(例如对象所在的方法已调用完毕),系统自动执行析构方法。析构方法往往用...

  • 8.构造方法与析构方法

    指定构造方法,便利构造方法,构造方法嵌套convenience构造方法继承,构造方法安全性检查4原则,可失败构造方...

  • Swift4 构造方法与析构方法

    用于完成时例构造的方法被称为构造方法,析构方法是构造方法的逆过程,一个实例对象要被注销或者释放的过程由析f构方法来...

  • python 13面向对象

    构造函数 析构函数 私有 类方法 静态方法 属性方法

  • PHP面向对象基础知识整理

    面向对象由类、成员(字段)、方法组成,方法大致分为三种,分别是普通方法、构造方法、析构方法,具体区别如下: 析构方...

  • C#(16)构造析构 封装继承 里氏转化

    8yue25 构造方法和析构方法 构造方法定义 1.构造方法必须与类重名; 2.构造方法没有返回值,但可以有参数;...

  • 面向对象编程

    构造方法和析构方法 构造方法 类的构造方法 Woman类后面的“()”;其实指的就是构造方法。 只要你想要创建类或...

  • 【第35天】python全栈从入门到放弃

    1 析构方法:(deal)释放一个空间 构造方法:申请一个空间new 析构方法:释放一个空间del 对象借用了操作...

  • 类和实例

    类的特征 公有方法私有方法属性私有变量析构函数:(析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已...

  • Python基础教程:内置方法补充

    构造方法 申请一个空间 析构方法 释放一个空间之前执行 某对象借用了操作系统的资源,还要通过析构方法归还回去 :...

网友评论

      本文标题:8.构造方法与析构方法

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