var num1 : Int = 0

    var num2 : Int = 5

    /// 1.计算属性
var num3 : Int{
return num1 + num2
} /// 2.闭包属性
private lazy var num4 : Int = {
return num1 + num2
}() override func viewDidLoad() {
super.viewDidLoad()
print(num3)
print(num4)
}

  

2.类属性

class Student: NSObject {
/// 类属性
static var score : Int = 0
} override func viewDidLoad() {
super.viewDidLoad() Student.score = 1
print(Student.score)
}

  

3. 对象属性赋值

class Student: NSObject {

    var age:Int = 0

    ///可选属性: name1 和name2一个意思
var name1:String?
var name2:String? = nil
} let stu = Student()
stu.age = 10
stu.name1 = "1蛋"
stu.name2 = "2蛋"
print(stu.age) /// 可选属性 解包写法1
if let name = stu.name1{
print(name)
} /// 可选属性 解包写法2
guard let name2 = stu.name2 else { return }
print(name2)

/// 可选属性 解包写法3

print(stu.name1 ?? "")

  

4.构造函数:   init(){}  是系统默认的构造函数

自定义构造函数:A> 旧语法 可以在 init的()里面直接写上新参数,B>: 在目前3.0后需要加上convenienceclass  

class Student: NSObject {

    var age:Int = 0

    ///可选属性: name1 和name2一个意思
var name1:String?
var name2:String? = nil /// 系统默认构造函数: 不需要写 self.init(),但是没啥用
override init() {
self.name1 = "0"
} /**自定义构造函数
* age 和 age1一样,
* 使用conveniences需要写上self.init()
*/
init(age:Int, name:String) {
self.age = age
self.name1 = name
} convenience init(age1:Int, name1:String) {
self.init()
self.age = age1
self.name1 = name1
} /**2.传入字典
* dict,dict1,dict2,dict3一样,
* dict2,dict3在使用时还是字典使用[String:Any]
*/
init(dict:[String:Any]) {
self.age = dict["age"] as? Int ?? 0
self.name1 = dict["name1"] as? String ?? ""
} convenience init(dict1:[String:Any]) {
self.init()
self.age = dict1["age"] as? Int ?? 0
self.name1 = dict1["name1"] as? String ?? ""
} init(dict2:Dictionary<String, Any>) {
self.age = dict2["age"] as? Int ?? 0
self.name1 = dict2["name1"] as? String ?? ""
} convenience init(dict3:Dictionary<String, Any>) {
self.init()
self.age = dict3["age"] as? Int ?? 0
self.name1 = dict3["name1"] as? String ?? ""
} } let tempStu = Student(age: 10, name: "tempStu")
print("tempStu",tempStu.name1 ?? "", tempStu.age)// tempStu tempStu 10 let tempStu1 = Student(age1: 11, name1: "tempStu1")
print("tempStu1",tempStu1.name1 ?? "", tempStu1.age)// tempStu1 tempStu1 11 let stu = Student(dict: ["age":18, "name1":"stu"])
print("dict",stu.name1 ?? "", stu.age)// dict stu 18 let stu1 = Student(dict1: ["age":18, "name1":"stu1"])
print("dict1",stu1.name1 ?? "", stu1.age)//dict1 stu1 18 let stu2 = Student(dict2: ["age":18, "name1":"stu2"])
print("dict2",stu2.name1 ?? "", stu2.age)//dict2 stu2 18 let stu3 = Student(dict3: ["age":18, "name1":"stu3"])
print("dict3",stu3.name1 ?? "", stu3.age)//dict3 stu3 18

  

swift - 基础属性 - 属性写法的更多相关文章

  1. 原创:新手布局福音!微信小程序使用flex的一些基础样式属性

    来源:新手布局福音!微信小程序使用flex的一些基础样式属性 作者:Nazi   Flex布局相对于以前我们经常所用到的布局方式要好的很多,在做微信小程序的时候要既能符合微信小程序的文档开发要求,又能 ...

  2. python基础——实例属性和类属性

    python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...

  3. 李洪强iOS开发Swift篇—09_属性

    李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要 ...

  4. css复合属性的写法

    # 复合属性也称为 "shortcut" property (快捷属性),它作用是为了简化代码,提高页面运行的效率. # 下面的内容会介绍 2 个比较常用的复合属性 "f ...

  5. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  6. 【CSS】 CSS基础知识 属性和选择

    css基础知识 html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式.在html中定义css有三种方法 1. 为标签添加style属 ...

  7. swift 学习- 11 -- 属性

    // '属性'将值跟特定的类, 结构体或枚举关联, 存储属性常量或变量作为实例的一部分,而计算属性计算(不是存储) 一个值, 计算属性可以用于 类, 结构体, 枚举, 存储属性只能用于 类 和 结构体 ...

  8. CSS基础以及属性

    一.CSS 偷个懒,啥是CSS我就不介绍啦 二.CSS语法 CSS语法:选择符{属性:属性值:属性:属性值:}选择符表示要定义样式的对象,可以是元素本身,也可以是一类元素或者制定名称的元素.属性:属性 ...

  9. 前端基础-CSS属性操作

    前端基础-CSS属性操作 css text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB( ...

  10. vue基础---计算属性和侦听器

    [一]计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> ...

随机推荐

  1. DataGrip 连接数据库查询出来的结果乱码的问题

    打开连接数据源选项 选择 Advanced----Charset  填入 GBK 应用即可 目前遇到的是连接 SYbase数据库

  2. 修改 计算机名后,修改SQLserver 注册服务器对象的名称,及登陆名

    select @@ServerName --查看当前所有数据库服务器名称select * from Sys.SysServers --修改数据库服务器名称sp_dropserver 'old_serv ...

  3. php装curl拓展出错

    错误: checking for cURL in default path... not found checking for cURL 7.10.5 or greater... ./configur ...

  4. U3D中可以直接使用GL!!!

    https://blog.csdn.net/u013172864/article/details/78860624

  5. Glide4 高效加载图片的配置【转】

    原文: Glide4 高效加载图片的配置 https://www.jianshu.com/p/a079713f280f

  6. C# 模拟多线程下载文件

    原地址:http://www.cnblogs.com/Opiece/p/4803836.html 客户端 public static string strContent = ""; ...

  7. R语言-直方图

    1.直方图 直方图和柱形图的区别:直方图表示频数,柱形图表示数量. 一般直方图的X轴表示取值范围,Y轴表示频数 hist() 函数 > hist(rnorm(1000)) #1000个正态随机数 ...

  8. elasticsearch 测试

    https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html # curl -XPUT "http://loca ...

  9. org注释包

    1.注释包 物种 OrgDB 按蚊(Anopheles) org.Ag.eg.db 拟南芥(Arabidopsis) org.At.tair.db 牛(Brovine) org.Bt.eg.db 蠕虫 ...

  10. Python基础之-----------函数

    ---恢复内容开始--- 函数:在其他的语言中,我们也经常听到函数的概念,那么什么是函数呢?在Java中叫做method: 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函 ...