版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类7.1类与对象7.2属性7.3方法7.4下标脚本7.5类的嵌套7.6可选链接7.7综合案例7.8上机实践7.1类与对象7.1.1类的组成7.1.2创建类7.1.3实例化对象7.1.1类的组成在一个类中通常可以包含属性、下标脚本和方法。属性:它将值和特定的类关联。下标脚本:访问对象、集合等的快捷方式。方法:实现某一特定的功能,类似于函数。7.1.2创建类类的创建其实就是对类进行的声明,只有在声明了类之后,才可以使用此类。创建类需要使用到class关键字,其语法形式如下:class类名{
//具体内容}7.1.3实例化对象实例化对象就是将创建的类进行具体化,其实就是定义类。其语法形式如下:var/let对象名=类名()7.2属性7.2.1存储属性7.2.2计算属性7.2.3类型属性7.2.4属性监视器7.2.1存储属性存储属性就是存储特定类或者结构(结构会在后面的章节中进行讲解)中的一个常量或者变量。1.定义存储属性存储属性可以根据数据是否可变,分为两种:一种是常量存储属性;另一种是变量存储属性。存储属性的声明和定义是在一起进行的。在编程中如果声明定义一起进行,可以将声明定义称为定义。定义常量存储属性需要使用到let关键字,其定义的语法形式如下:let常量存储属性名:数据类型=初始值变量存储属性可以使用var关键字定义,其定义的语法形式如下:var变量存储属性名:数据类型=初始值2.访问存储属性存储属性是可以进行访问的。要实现访问功能,需要使用到“.”运算符,其语法形式如下:对象名.常量存储属性名/变量存储属性名3.修改存储属性存储属性是可以进行修改的,如果在定义存储属性时,对存储属性初始化的值不满意,开发者可以对该存储属性进行修改。修改存储属性还需要使用到“.”点运算符,其语法形式如下:对象名.存储属性=修改的内容4.延迟存储属性如果开发者只有在第一次调用存储属性时才能确定初始值,这时需要使用延迟存储属性实现。它的定义一般需要使用关键字lazy实现的,其语法形式如下:lazyvar属性名:数据类型=初始内容7.2.2计算属性在类中除了可以定义存储属性外,还可以定义计算属性。计算属性不存储值,而是提供了一个getter和setter来分别进行获取值和设置其他属性的值。getter使用get关键字进行定义,其一般形式如下:get{
…
return某一属性值}setter使用set关键字进行定义,其一般语法形式如下:set(参数名称){
…属性值=某一个值
…}7.2.2计算属性在计算属性中同时包含了getter和setter,其一般定义形式如下:var属性名:数据类型{get{
…
return某一属性值}set(参数名称){
… 属性值=某一个值
…
}}1.不定义set后面的参数名称如果在计算属性的setter中(即set后面)没有定义表示新值的参数名,则可以使用默认名称newValue。2.可以使用getter在计算属性中,如果只有一个getter,则称为只读计算属性。只读计算属性可以返回一个值,但不能设置新的值。7.2.3类型属性类型属性就是不需要对类进行实例化就可以使用的属性。它需要使用关键字static进行定义,其中定义存储型类型属性时的语法形式如下:static
var类型属性名:数据类型=初始值定义计算型类型属性的语法形式如下:static
var类型属性名:数据类型{
…返回一个值}1.访问类型属性类型属性和以存储属性、计算属性一样,也是可以被访问的,其访问类型属性的一般形式如下:类名.类型属性2.修改类型属性类型属性和存储属性一样,除了可以进行访问外,还可以进行修改,其语法形式如下:类名.类型属性=修改的内容7.2.4属性监视器属性监视器用来监控和响应属性值的变化。每次属性被设置值的时候,都会调用属性监视器,哪怕是新的值和原先的值相同。一个属性监视器由willSet和didSet组成,其定义形式如下:var属性名:数据类型=初始值{willSet(参数名){
…}didSet(参数名){
…
}}1.不指定参数名在willSet后面是可以不指定参数的,这时Swift会使用默认newValue表示新值。2.分开使用willSet和didSet一个完整的属性监视器由willSet和didSet组成,但是willSet和didSet也可以单独使用。7.3方法7.3.1实例方法7.3.2类型方法7.3.3存储属性、局部变量和全局变量的区别7.3.4局部变量和存储属性同名的解决方法——self属性7.3.1实例方法实例方法为给定类型的实例封装了具体的任务与功能。在类中可以定义实例方法,它需要由类的实例调用。实例方法和函数一样,分为了不带参数和带参数两种。以下依次讲解这两种方法的使用。1.不带参数的实例方法不带参数的实例方法定义和函数的是一样的,其语法形式如下:func方法名()->返回值类型{
…}但它的调用形式和函数的有所不同,其调用形式如下:对象名.方法名()2.带有参数的实例方法具有参数的实例方法就是在方法名后面的括号中添加了参数列表。它的定义也和函数一样,定义形式如下:func方法名(参数名1:数据类型,参数名2:数据类型,…)->返回值类型{
…}它的调用形式如下:对象名.方法名(参数值1,参数名2:参数值2,…)7.3.2类型方法实例方法是被类型的某个实例调用的方法。而类型方法则是被类本身调用的方法。在类中不仅可以定义实例方法,还可以定义类型方法。其中,类型方法也可以和实例方法一样,分为不带参数的类型方法和带有参数的类型方法。1.不带参数的类型方法定义带到参数的类型方法可以实现static关键字进行定义,其语法形式如下:staticfunc方法名()->返回值类型{
…}除了可以使用关键字static对不带参数的类型方法进行定义外,还可以使用class关键字对不带参数的类型方法进行定义,其语法形式如下:classfunc方法名()->返回值类型{
…}不带参数的类型方法的调用形式如下:类名.方法名()2.具有参数的类型方法具有参数的类型方法在定义时有两种形式,一种是使用static关键字,其语法形式如下:staticfunc方法名(参数名1:数据类型,参数名2:数据类型,…){
…}另一种是使用class关键字,其语法形式如下:classfunc方法名(参数名1:数据类型,参数名2:数据类型,…){
…}定义好类型方法后就可以进行调用了,调用具有参数的类型方法的语法形式如下:类名.方法名(参数值1,参数名2:参数值2,…)7.3.3存储属性、局部变量和全局变量的区别存储属性可以理解为变量的一种。所以随着变量使用地方的不同,可以将变量分为存储属性、局部变量和全局变量。变量名称定义范围存储属性定义在类中局部变量函数、方法或闭包内部全局变量函数、方法、闭包或任何类型之外定义的变量7.3.4局部变量和存储属性同名的解决方法——self属性在一个类中,方法中的局部变量可能和存储属性同名。这时,不能直接使用相同的名称去访问存储属性,为了解决这一问题,Swift引入了一个self属性。7.4下标脚本7.4.1定义下标脚本7.4.2调用下标脚本7.4.3使用下标脚本7.4.1定义下标脚本下标脚本可以定义在类(Class)、结构体(structure)和枚举(enumeration)中(对于结构体和枚举会在后面的章节中进行),其语法形式如下:subscript(参数名称1:数据类型,参数名称2:数据类型,…)->返回值的数据类型{
get{
//返回与参数类型匹配的类型的值
}
set(参数名称){
//执行赋值操作
}}7.4.2调用下标脚本定义好下标脚本后,就可以进行调用了,其调用形式如下:实例对象[参数1,参数2,…]其中,[]和它里面的内容就代表了在类中定义的下标脚本。7.4.3使用下标脚本下标脚本可以根据传入参数的不同,分为具有一个传入参数的下标脚本和具有多个传入参数的下标脚本。以下就是对这两个下标脚本在类中的使用。1.具有一个传入参数的下标脚本具有一个传入参数的下标脚本是最常见的。在集合以及字符串中使用的下标就是具有一个传入参数的下标脚本。2.具有多个参数的下标脚本具有多个入参参数的下标脚本一般使用在多维数组中。7.5类的嵌套7.5.1直接嵌套7.5.2多次嵌套7.5.1直接嵌套当一个类或者多个类直接嵌套在另外一个类,这时就构成直接嵌套。7.5.2多次嵌套多次嵌套就是在类1中嵌套类2,但是在类2中有嵌套了类3,依次类推。7.6可选链接7.6.1使用可选链式调用代替强制解析7.6.2通过可选链接调用属性、下标脚本、方法7.6.3连接多个链接7.6.1使用可选链式调用代替强制解析开发者可以在想要调用的属性、下标脚本和方法的可选值后面添加一个“?”问号来进行可选链接的定义。开发者通过对选链式调用可以代替强制解析。7.6.2通过可选链接调用属性、下标脚本、方法开发者可以使用可选链接的可选值来调用属性、下标脚本和方法,并检查这些内容调用是否成功,1.调用属性通过可选链接调用属性的语法形式如下:可选链接.属性名
//调用属性2.调用方法通过可选链接调用方法的语法形式如下:可选链接.方法
//调用方法3.调用下标脚本通过可选链接调用下标脚本的语法形式如下:可选链接.[下标]
//调用下标脚本7.6.3连接多个链接开发者可以通过连接多个可选链式调用在更深的模型层级中属性、方法以及下标。然而,多层可选链式调用不会增加返回值的可选层级。7.7综合案例7.7.1收支情况7.7.2根据周长,计算面积7.7.1收支情况【程序7-28】有一个工程师,有存款2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐山师范学院《人类与医学遗传学实验》2023-2024学年第一学期期末试卷
- 江汉大学《工程经济与管理》2023-2024学年第一学期期末试卷
- 华北电力大学《航空材料双语》2023-2024学年第一学期期末试卷
- 湖南环境生物职业技术学院《碳纤维材料》2023-2024学年第一学期期末试卷
- 湖北财税职业学院《应用随机过程》2023-2024学年第一学期期末试卷
- 自贡职业技术学院《化工原理(2)》2023-2024学年第一学期期末试卷
- 周口师范学院《行政伦理学》2023-2024学年第一学期期末试卷
- 浙江师范大学行知学院《口译实训》2023-2024学年第一学期期末试卷
- 郑州卫生健康职业学院《数控车床实训》2023-2024学年第一学期期末试卷
- 玉溪职业技术学院《云南少数民族题材电影赏析》2023-2024学年第一学期期末试卷
- 2023年小学科学教研组教研工作总结(5篇)
- 三年级上册递等式计算练习300题及答案
- 政治画像品德操守自我评价3篇
- 奶茶督导述职报告
- 山东莱阳核电项目一期工程水土保持方案
- 白熊效应(修订版)
- 视频监控维保项目投标方案(技术标)
- 社会组织能力建设培训
- 立项报告盖章要求
- 2022年睾丸肿瘤诊断治疗指南
- 被执行人给法院执行局写申请范本
评论
0/150
提交评论