swift构造方法
来源:互联网 发布:php和java哪个好找工作 编辑:程序博客网 时间:2024/04/30 22:24
class Human {
var name:String?
var age:Int?
//正常构造
init(name:String,age:Int){
self.name = name;
self.age = age;
}
//缺省构造
init(name:String){
self.name = name;
}
}
/**
结构体逐一成员构造方法是结构体特有的,类是没有这个构造方法的。
*/
struct Size {
var width:Double = 0.0;
var height:Double = 0.0;
var area:Double{
return width * height;
}
}
/**
枚举类型的构造方法.
枚举是不能通过类型来隐式调用构造方法的,只有给枚举定义了构造方法,才可以让枚举像类或者结构体那样构造对象。
*/
enum Color:String {
case Red = "red"
case Blue = "blue"
case White = "white"
init(){
self = .Red;
}
init(color:Color){
self = color;
}
}
/**
值类型的构造方法代理。
当调用某个构造方法时,通过构造方法之间的调用,可以有效减少代码量。
*/
class Hello {
var language:String?
var time:Int?
convenience init(language:NSString){
self.init(lang:language as String ,time:10);
}
init(lang:String,time:Int){
self.language = lang;
self.time = time;
}
}
/**
当某个存储属性的类型为可选类型时,可以不在构造方法中对这个属性进行赋值。
在构造方法中,可以对常量属性赋值。其它任何时候都不能再赋值
*/
/**
* 特别注意闭包后面的()如果没有它,只是将闭包赋值给了这个属性。加上()就是将包内的结果赋值给了属性。
*/
struct PKPic {
var number:Int = {
var count = 0;
for i in 0...5
{
// count ++; error!中间不可以有空格
count++;
}
return count
}()
}
/**
派生类的构造方法
【1】便利构造方法。构造方法互相嵌套,或者只传某个属性的值。
【2】制定构造方法。将所有属性都一一赋值。
【3】给派生类编写构造方法。
派生类可以自己写一个构造方法,然后super调用父类的构造方法之后,再处理本类中特殊的构造方法。
*/
/**
指定构造方法和便利构造放大的调用规则:
【1】派生类的构造方法只能向上调取父类的制定构造方法。!!制定构造方法!
【2】便利构造方法只能同向调用奔雷的其他构造方法
【3】便利构造方法最终必须以一个制定构造方法调用结束。
*/
/**
构造方法的重写
【1】是对父类的制定构造方法的重写,重写前要有override关键字。
【2】父类的便利构造方法无法在子类中被重写,就是子类中有名字相同的,那也不是被重写,更不用提override关键字了,二者毫无关系。
*/
/**
构造方法的自动继承。
默认情况下,父类的构造方法不会被子类继承。下面的情况下会继承
【1】如果派生类没有引用任何存储属性或者引入的存储属性都有缺省值
【2】如果派生类重写了父类的所有的制定构造方法。
*/
/**
必须构造方法。 关键字required
如果某个构造方法被标记为必须构造方法,那么后续的所有继承类都要实现该构造方法。子类在重写必须构造方法时,必须在前面加上required关键字,用来表示在继承链上所有的类都必须实现该构造方法。
*/
- Swift UIImageView 构造方法
- Swift中的构造方法
- swift UIImageView构造方法
- swift构造方法
- swift构造方法
- swift构造方法
- Swift-构造方法
- Swift--12构造方法
- Swift中的构造方法
- 13.9 Swift必须构造方法
- Swift 基础学习(指定构造方法和便利构造方法)
- 13.1 Swift指定构造方法和便利构造方法解析
- Swift-指定构造方法和便利构造方法
- Swift:面向对象(继承与构造方法)
- Swift 基础学习(构造方法初印象)
- swift: 方法的重载/重写/KVC构造
- 12.1 Swift构造方法初印象
- 12.3 Swift带有参数的构造方法
- Java 多态性解析
- postgreSQL的安装
- 腾讯Unity3D手游加密分析
- Ubuntu中root用户和user用户的相互切换
- 程序员技术练级攻略
- swift构造方法
- C语言开发总结(五)
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- ATL动态库调试总是链接到其它路径下的可执行程序
- 利用 jquery flot 生成柱状图
- java io 流整理
- hoyi-web[java] 用户控件的使用
- 基于Ubuntu14.04的Hadoop2.6.0完全分布式安装
- 单源最短路-SPFA(poj2387)