Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸
Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸
8.5 类的嵌套在一个类中可以嵌套一个或者多个类Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸。它们的嵌套形式也是不同的,大致分为了两种:直接嵌套和多次嵌套。下面依次讲解这两种方式。
8.5.1 直接嵌套Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸
当一个类或者多个类直接嵌套在另外一个类,这时就构成直接嵌套,如图8.6所示。
图8.6 类的嵌套
在图8.6中,类2、类3和类4都是直接嵌套在类1中。对于这种情况,使用类1的实例属性和方法,语法形式如下Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸:
类1().属性
类1().方法
使用类1的类型属性和方法的形式如下:
类1.属性
类1.方法
Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸使用类2的实例属性和方法,语法形式如下:
类1.类2().属性
类1.类2().方法
使用类2的类型属性和方法的形式如下:
类1.类2.属性
类1.类2.方法
类3和类4的使用方法类似。
Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸【示例8-21】以下将定义一个直接嵌套的类NewClass,在此类中嵌套了Str1Class、Str2Class、Str3Class这3个类,和一个可以输出这3个类中属性内容的方法。在Str1Class、Str2Class、Str3Class这三个类中又定义了类型属性,它们都会返回一个字符串。代码如下:
import Foundation
class NewClass {
class func printstr(str:String){
println(str)
}
//Str1Class类
class Str1Class{
class var str:String{
return “Swift”
}
}
//Str2Class类
class Str2Class{
class var str:String{
return “Hello”
}
}
//Str3Class类
class Str3Class{
class var str:String{
return “World”
}
}
}
//调用
NewClass.printstr(NewClass.Str1Class.str)
NewClass.printstr(NewClass.Str2Class.str)
NewClass.printstr(NewClass.Str3Class.str)
Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸在此代码中,在一个NewCllass类中有包含了3个类,分别为Str1Class、Str2Class、Str3Class。运行结果如下所示:
Swift
Hello
World
Program ended with exit code: 0
8.5.2 多次嵌套Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸
Swift中,类的嵌套不仅允许一次嵌套,还允许多次嵌套。这时的嵌套形式如图8.7所示。
图8.7 类的嵌套2
类3和类4是直接嵌套在类2中,而类2又直接嵌套在类1。这样形成了多层嵌套。这时,如果访问类1的实例属性和方法,其语法形式如下:
类1().属性
类1().方法
访问类1的类型属性和方法,其语法形式如下:
类1.属性
类1.方法
如果要访问类2的实例属性和方法,对应的语法形式如下:
类1.类2().属性
类1.类2().方法
访问类2的类型属性和方法,对应的语法形式如下:
类1.类2.属性
类1.类2.方法
如果要访问类3的实例属性和方法,对应的语法形式如下:
类1.类2.类3().属性
类1.类2.类3().方法
如果要访问类3的类型属性和方法,对应的语法形式如下:
类1.类2.类3.属性
类1.类2.类3.方法
【示例8-22】以下将定义一个多次嵌套的类NewClass,在此类中嵌套了StrClass类,和一个可以输出属性内容的方法。在StrClass类中又嵌套了Str1Class、Str2Class、Str3Class这3个类,它们都会返回一个字符串。代码如下:
import Foundation
class NewClass {
class func printstr(str:String){
println(str)
}
// StrClass类
class StrClass{
// StrClass1类
class Str1Class{
class var str:String{
return “Hello”
}
}
// StrClass2类
class Str2Class{
class var str:String{
return “Swift”
}
}
// StrClass3类
class Str3Class{
class var str:String{
return “World”
}
}
}
}
//调用
NewClass.printstr(NewClass.StrClass.Str1Class.str)
NewClass.printstr(NewClass.StrClass.Str2Class.str)
NewClass.printstr(NewClass.StrClass.Str3Class.str)
在此代码中,在一个NewCllass类中有包含了1个类StrClass,在StrClass类中又包含了3个类,分别为Str1Class、Str2Class、Str3Class。运行结果如下所示:
Hello
Swift
World
Program ended with exit code: 0
Swift语言类的嵌套直接嵌套多次嵌套Swift语言入门很简单大学霸
Comments are closed.