云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Swift中文版教程

Swift中文版教程

  • 62 次阅读
  • 3 次下载
  • 2026/1/10 4:43:14

varshape=Shape() shape.numberOfSides=7

varshapeDescription=shape.simpleDescription()

这个版本的Shape类有些重要的东西不在:一个构造器来在创建实例时设置类。使用init来创建一个。

classNamedShape{ varnumberOfSides:Int=0 varname:Stringinit(name:String){ self.name=name }//bygashero

funcsimpleDescription()->String{

return\} }

注意self用来区分name属性和name参数。构造器的生命跟函数一样,除了会创建类的实例。每个属性都需要赋值,无论在声明里还是在构造器里。

使用deinit来创建一个析构器,来执行对象销毁时的清理工作。

子类包括其超类的名字,以冒号分隔。在继承标准根类时无需声明,所以你可以忽略超类。

子类的方法可以通过标记override重载超类中的实现,而没有override的会被编译器看作是错误。编译器也会检查那些没有被重载的方法。

classSquare:NamedShape{varsideLength:Doubleinit(sideLength:Double,name:String){self.sideLength=sideLengthsuper.init(name:name)numberOfSides=4}funcarea()->Double{returnsideLength*sideLength}overridefuncsimpleDescription()->String{return\e:\ Note 练习

编写另一个NamedShape的子类叫做Circle,接受半径和名字到其构造器。实现area和describe方法。

属性可以有getter和setter。

classEquilateralTriangle:NamedShape {

varsideLength:Double=0.0

init(sideLength:Double,name:String){ self.sideLength=sideLength super.init(name:name) numberOfSides=3 }

varperimeter:Double{ get{

return3.0*sideLength } set{

sideLength=newValue/3.0 } }

overridefuncsimpleDescription()->String{

return\} }

vartriangle=EquilateralTriangle(sideLength:3.1,name:\triangle.perimeter triangle.perimeter=9.9 triangle.sideLength

在perimeter的setter中,新的值的名字就是newValue。你可以提供一个在set之后提供一个不冲突的名字。

注意EquilateralTriangle的构造器有3个不同的步骤:

设置属性的值调用超类的构造器改变超类定义的属性的值,添加附加的工作来使用方法、getter、setter也可以在这里

如果你不需要计算属性,但是仍然要提供在设置值之后执行工作,使用willSet和didSet。例如,下面的类要保证其三角的边长等于矩形的变长。

classTriangleAndSquare{ vartriangle:EquilaterTriangle{ willSet{

square.sideLength=newValue.sideLength } }

varsquare:Square{ willSet{

triangle.sideLength=newValue.sideLength } }

搜索更多关于: Swift中文版教程 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

varshape=Shape() shape.numberOfSides=7 varshapeDescription=shape.simpleDescription() 这个版本的Shape类有些重要的东西不在:一个构造器来在创建实例时设置类。使用init来创建一个。 classNamedShape{ varnumberOfSides:Int=0 varname:Stringinit(name:String){ self.name=name }//bygashero funcsimpleDescription()->String{ return\} } 注意self用来区分name属性和name参数。构造器的生命跟函数一样,除了会创建类的实例。每个属性都需要赋值,无论在声明里还是

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com