Files
the-swift-programming-langu…/source/chapter2/09_Classes_and_Structures.md
2014-06-09 05:16:07 -05:00

42 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 类和结构体
类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。
与其他编程语言所不同的是Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。
> 通常一个`类`的实例被称为`对象`。然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本章中所讨论的大部分功能都可以用在类和结构体上。因此,我们会主要使用`实例`而不是`对象`。
### 类和结构体之比较
Swift 中类和结构体有很多共同点。共同处在于:
* 定义属性用于储存值
* 定义方法用于提供功能
* 定义下标用于通过下标语法访问值
* 定义初始化器用于生成初始化值
* 通过扩展以增加默认实现的功能
* 符合协议以对某类提供标准功能
更多信息请参见 [属性](http://)[方法](http://)[下标](http://)[初始化](http://)[扩展](http://),和[协议](http://)。
与结构体相比,类还有如下的附加功能:
* 继承允许一个类继承另一个类的特征
* 类型转换允许在运行时检查和解释一个类实例的类型
* 取消初始化器允许一个类实例释放任何其所被分配的资源
* 引用计数允许对一个类的多次引用
更多信息请参见[继承](http://)[类型转换](http://)[初始化](http://),和[自动引用计数](http://)。
>结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。
### 定义
类和结构体有着类似的定义方式。我们通过关键字`class``struct`来分别表示类和结构体,并在一对大括号定义它们的具体内容:
class SomeClass {
// class definition goes here
}
struct SomeStructure {
// structure definition goes here
}
>