Swift学习之构造方法
定义
构造过程是为了使用某个类、结构体或枚举类型的实例进行的准备过程。这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务。
构造方法可以被归结为指定构造方法与遍历构造方法,在Swift中构造函数使用init()方法,与OC中的构造方法不同的是,在Swift中,构造函数init()是没有返回值的。
一、指定初始化方法
实例1
class Animal {
var weight:Double
var name:String
init() {
weight = 0;
name = "动物"
}
//对外显示参数名字,对内跟对外参数名字默认一样都是weight
init(weight:Double) {
self.weight = weight
self.name = "动物"
}
//对外显示参数名字
init(fromWeight weight:Double, fromName name:String) {
self.weight = weight
self.name = name
}
//对外隐藏参数名字
init(_ weight:Double, _ name:String) {
self.weight = weight
self.name = name
}
}
let animal2 = Animal(fromWeight:300, fromName:"东北虎");
let animal3 = Animal(300, "东北虎");
以上例子要点:1.一个类的指定初始化方法可以是一个也可以是多个 2.存储属性必须在初始化方法中进行赋值
如果一个类没有定义构造方法,其构造方法的默认是init()
实例2
struct Rectangle {
var lenght:Double?
var width:Double?
init() {
}
}
以上例子要点:1.将属性设置为可选类型 此时不需要在构造函数中赋值了
如果结构体中没有定义初始化方法
struct Rectangle {
var length:Double?
var width:Double?
}
其默认的初始化方法就是
let recTangle = Rectangle(length:100, width:50)
二、遍历初始化方法
class Dog: Animal {
var color:UIColor
init() {
self.color = UIColor.white
super.init(weight: 100)
}
override init(weight: Double) {
self.color = UIColor.white
super.init(weight: weight)
}
convenience override init(_ weight: Double, _ name: String) {
self.init(weight: weight)
self.name = name
}
}
Swift学习之构造方法的更多相关文章
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- 今天开始Swift学习
今天开始Swift学习 在此记录笔记 以备之后查阅! allenhuang
- iOS ---Swift学习与复习
swift中文网 http://www.swiftv.cn http://swifter.tips/ http://objccn.io/ http://www.swiftmi.com/code4swi ...
- 12套swift学习资源分享
虽然objective-c编程语言在过去很长一段时间都是iOS应用开发的基础语言,且很多iOS开发者对其也深爱有佳,但是随着swift编程语言的问世,迅速发展为开发者追捧的语言.且今年伴随着swift ...
- Swift学习之常用UI的使用
Swift学习之常用UI的使用 最近笔者在开始学习苹果最新的编程语言,因为笔者认为,苹果既然出了这门语言就绝对不会放弃,除非苹果倒闭了(当然这里知识一个玩笑). 所以在不久的将来,swift绝对是iO ...
- [转]swift 学习资源 大集合
今天看到了一个swift的学习网站,里面收集了很多学习资源 [转自http://blog.csdn.net/sqc3375177/article/details/29206779] Swift 介绍 ...
- swift 学习资源 大集合
今天看到一个swift学习网站,其中我们收集了大量的学习资源 Swift 介绍 Swift 介绍 来自 Apple 官方 Swift 简单介绍 (@peng_gong) 一篇不错的中文简单介绍 [译] ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- swift学习:第一个swift程序
原文:swift学习:第一个swift程序 最近swift有点火,赶紧跟上学习.于是,个人第一个swift程序诞生了... 新建项目
随机推荐
- 关系数据标准语言SQL之数据查询
数据查询是数据库的核心操作.SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能. 其一般格式为 select [all | distinct]<目标表达式>[, ...
- 如何用phpcms将静态网页生成动态网页?
在前两篇随笔中已经简单介绍了phpcms,那么现在让我们来看一下如何用phpcms将静态网页生成动态网页? 1.在templates文件夹下新建模板文件夹ceshi(名字可以自己随笔起) 2.在ces ...
- 轻松Angularjs实现表格按指定列排序
angular表格点击序号进行升序,再次点击进行降序排序,在输入框输入信息,出现相对应数据的那一行. html: <input type="text" ng-model=&q ...
- Spring 3整合Quartz 2实现手动设置定时任务:新增,修改,删除,暂停和恢复(附带源码)
摘要:在项目的管理功能中,对定时任务的管理有时会很常见.但一般定时任务配置都在xml中完成,包括cronExpression表达式,十分的方便.但是如果我的任务信息是保存在数据库的,想要动态的初始化, ...
- 【Android Developers Training】 38. 文件共享需求
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Less 的使用
Less 的使用 开发时直接使用 引用你的样式文件(main.less) (必须在less.min.js) 前引用 引用less.min.js 文件 <link href="resou ...
- 一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性
如果一个DOM元素包含多个类名,其中的两个类名的属性产生冲突,并不是根据htnl中类名的顺序来决定DOM元素的属性, 而是根据css样式中的顺序来决定DOM元素的属性,它取决于css样式表中后读取到的 ...
- Grafana中整个Dashboard报错问题解决
操作Grafana时,有时不小心按了"CTRL+Z",会导致整个Dashboard出错,如下所示: 目前找到一个解决方案,也许不是正路,但是能解决上述问题,如果有了更简单有效的解决 ...
- Vijos 1025 小飞侠的游园方案 0-1背包
描述 经过抽签选择,小智将军第一个进入考场. 菜虫:(身上散射出华贵(?)的光芒)欢迎你,第一位挑战者!! 小智:--(走到菜虫身后,关灯)女王陛下,虽然我们国家现在很富裕,但也请您不要浪费电来用这么 ...
- js实现两个输入框中的数字相乘并自动将结果显示在第三个输入框
<script type="text/javascript"> function cal(ida,idb,idc) { var numa=Number(document ...