每天学一点Swift----面向对象上(二)

43 篇文章 0 订阅
42 篇文章 0 订阅

.类和结构体

  1. Swift的类和结构体高度相似,无论在定义语法上还是在用法上。

  

  2. 结构体和类的主要区别是:

  1结构体不支持继承(自然也就不支持类型转换了)

  2)结构体不支持定义析构器

  3)结构体是值类型,而类是引用类型

  

  3. Objective-C中定义一个类时需要定义接口部分和实现部分的繁琐方式不同,Swift中定义类,结构体都只要定义一个文件即可,系统将会自动生成面向其他代码的外部接口

  

  4. 定义结构体和类的语法:

  [修饰符] class类名(或者  struct 结构体名)

  {

  零到多个构造器...

  零到多个属性...

  零到多个方法...

  零到多个下标...

  }

  

 5. 对于类来说,修饰符可以是:privateinternalpublicfinal。对于结构体来说,修饰符可以是:privateinternalpublic但不可能是final,因为结构体不支持继承

  

 6. 对于类来说,class修饰的成员(类成员)不能访问没有class修饰的成员(实例成员)----相当于java中的static关键字。 Swift中的static则用来修改结构体、枚举中的属性,表示该变量是结构体、枚举的成员。----总结来说就是:如果要实现像Java中的static关键字一样的功能,在Swift的类中用class修饰,在结构体、枚举中用static修饰。 

  

  7. 对于Swift中类的以下几点,同Java是相同的:

  1)属性用于定义类或该类实例所包含的状态数据;

  2)方法用于定义类或该类实例的行为特征或功能;

  3)构造器用于构造该类的实例;

  4如果没有定义构造器,默认提供了一个无参的构造器,一旦提供类构造器,系统就不会提供无参的构造器了;——Java中相同

  5Swift通过类名后添加圆括号来表示调用构造器,从而返回类的实例。

  

  8. 对于结构体来说,如果程序没有为结构体提供构造器,系统则会为结构体提供两个构造器:一个无参的构造器,一个初始化了所有存储属性的构造器。

  

  9.对于类来说,如果程序自定义的构造器和系统提供的构造器同时存在,则不能直接在类中定义构造器,可以通过扩展来为类添加构造器----对于结构体同样适用。

  

  10. Swift的属性分为两种:存储属性和计算属性,其中存储属性类似于Java中的类成员变量。用于保存类型本身或实例的状态数据,是需要内存来存储的,创建类的实例的同时会被创建;计算属性则类似于Java语言的settergetter方法合成的property,计算属性底层并一定保存状态数据。

  

  11. 定义存储属性的语法格式为:[修饰符] var|let存储属性名 类型名字 [=初始值]

  

  12.定义构造器的语法:

  [修饰符] init (形参列表)

  {

  零到多条执行语句。。。

  }

  不像Java中,构造器的名字是类名,Swift中的构造器总是init。并构造器不能声明返回值类型。举个栗子:

  class Person

  {

  //下面定义了两个存储属性

var name : String = ""

var age : Int = 0

  //下面定义了一个方法

  func say(content : String)

  {

  print(content)

  }

  }

  13. 定义一个Person类型的变量:  var p : Person

  

  14. 实例化: p = Person()   //调用了系统提供的无参的构造器  ----不像java,这里不用new关键字

  

  15. 使用实例: p.name = "小明"

               p.say("第一次使用Person")

               

  16. 对于结构体,跟类很相似,举个栗子:

  struct Dog

  {

  var name : String;

  var age : Int

  func run()

  {

  print("\(name) is running quckly")

  }

  

  }

  


  var dog = Dog(name : "旺财", age : 4)

  dog.run();

可见,结构体的实例化和调用方法和类很像。

上一篇:每天学一点Swift----面向对象上(一)

下一篇:每天学一点Swift----面向对象上(三)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值