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程序诞生了... 新建项目
随机推荐
- [0] 分析 EntityName 时出错。 行 2,位置 *。
1. 报错内容“若要在加载设计器前避免可能发生的数据丢失,必须纠正以下错误: ” “分析 EntityName 时出错. 行 2,位置 *.” 2. 如图: 3. 解决方案:查看项目全路径,是否有 ...
- android的drawable资源
1.android中可以通过xml文件配置资源,比如字符串啦,整数拉.浮点数等等,当然也可以配置图片资源和选择器,下面我们就看看几种图片资源的配置. @1矩形方框,带渐变色的配置代码 <?xml ...
- PHP+Redis 不注意这些细节简直就是跳入一个出不来的坑(windows下安装)
开门见山~~~~~~~ 首先要做的一件事情!确认版本!一定要确认你的php版本! phpinfo 看一下你目前的版本是多少,目前我的版本是 在标红的几处区域可以看到,vc11 TS x86 三处关键 ...
- 一起学习c++11——c++11中的新增的容器
c++11新增的容器1:array array最早是在boost中出现:http://www.boost.org/doc/libs/1_61_0/doc/html/array.html 当时的初衷是希 ...
- Kafka 源代码分析之LogSegment
这里分析kafka LogSegment源代码 通过一步步分析LogManager,Log源代码之后就会发现,最终的log操作都在LogSegment上实现.LogSegment负责分片的读写恢复刷新 ...
- 【Android Developers Training】 47. 序言:拍摄照片
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Thrift总结(二)创建RPC服务
前面介绍了thrift 基础的东西,怎么写thrift 语法规范编写脚本,如何生成相关的语言的接口.不清楚的可以看这个<Thrift总结(一)介绍>.做好之前的准备工作以后,下面就开始如何 ...
- IOS 状态栏(UIStatusBar)
ios上状态栏指的屏幕顶端的20像素高的部分 状态栏分前景和背景两部分 前景部分:就是指的显示电池.时间等部分: 背景部分:就是显示白色或者图片的背景部分: 如下图:前景部分为黑色字体,背景部分为白色 ...
- Ext修改所有Ajax的timeout
Ext修改所有Ajax的timeout stackoverflow上的解决方案 //需要在初始化viewport时执行 //方法一重写 Ext.Ajax.timeout= 60000; Ext.ove ...
- ReadTeacherObj
package JBJADV003;import java.io.*;public class ReadTeacherObj { /** * @param args */ public static ...