• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > Swift语言中的一些访问控制设置详解

Swift语言中的一些访问控制设置详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了taylor swift访问,swift语言,swift语言教程,swift语言下载,swift语言开发工具等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

限制访问代码块,模块和抽象通过访问控制来完成。类,结构和枚举可以根据自己的属性,方法,初始化函数和下标来通过访问控制机制进行访问。常量,变量和函数的协议限制,并允许通过访问控制来访问全局和局部变量。应用于属性,类型及函数的访问控制可以被称为“实体”。

访问控制模型是基于模块和源文件的。

模块定义为代码分配一个单独的单元,并且可以使用import 关键字导入。源文件被定义为一个单一的源代码文件,模块可访问多种类型和函数。

三种不同的访问级别是由 Swift 语言提供。它们分别是 Public, Internal 和 Private 访问。

2015118180135845.png (627×251)

语法
public class SomePublicClass {}
internal class SomeInternalClass {}
private class SomePrivateClass {}

public var somePublicVariable = 0
internal let someInternalConstant = 0
private func somePrivateFunction() {}
</div>
对于函数类型的访问控制
某些函数可能有参数在函数声明中但没有任何返回值。下面的程序声明 a 和 b 作为参数传递给sum()函数。内部函数本身为参数a和b的值是通过调用所述通过调用函数 sum(),其值被打印从而不用返回值。为了使函数的返回类型为私有,声明函数使用 private 修饰整体访问级别。
private func sum(a: Int, b: Int) {
   let a = a + b
   let b = a - b
   println(a, b)
}

sum(20, 10)
sum(40,10)
sum(24,6)
</div>
当我们使用 playground 运行上面的程序,得到以下结果

(30, 20)
(50, 40)
(30, 24)
</div>

对于枚举类型的访问控制
public enum Student{
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
   case .Name(let studName):
      println("Student name is: \(studName).")
   case .Mark(let Mark1, let Mark2, let Mark3):
      println("Student Marks are: \(Mark1),\(Mark2),\(Mark3).")
   default:
      println("Nothing")
}
</div>
当我们使用 playground 运行上面的程序,得到以下结果

Student Marks are: 98,97,95
</div>

枚举在Swift语言中将自动接收枚举个体并都具有相同的访问级别。例如,考虑访问固定于三个科目枚举名称,学生的名字和标记被声明为 student 而存在于枚举类中的成员都属于字符串数据类型名称,标记表示为 mark1, mark2 和 mark3 数据类型为整数。要访问无论是学生名称或标记分数。 现在,如果被执行 Switch case 块将打印学生姓名,否则它将打印由学生固定的标记。如果这两个条件都失败默认块将被执行。

子类访问控制
Swift 允许用户子类,可以在当前访问上下文存取的任何类。子类不能比其超类有更高的访问级别。 用户限制一个公共子类写入一个内部超类。
public class cricket {
      private func print() {
         println("Welcome to Swift Super Class")
   }
}

internal class tennis: cricket  {
   override internal func print() {
      println("Welcome to Swift Sub Class")
   }
}

let cricinstance = cricket()
cricinstance.print()

let tennisinstance = tennis()
tennisinstance.print()
</div>
当我们使用 playground 运行上面的程序,得到以下结果

Welcome to Swift Super Class
Welcome to Swift Sub Class
</div>

常量,变量,属性和下标访问控制
Swift 常量,变量或属性不能被定义比其类型更公开。这是无效一个 public 属性与 private 类型的写法。同样,下标不能超过其索引或返回类型更公开。

当一个常量,变量,属性或下标使用了一个私有类型,则常量,变量,属性或下标,也必须标记为私有:

getter和setter常量,变量,属性和标自动接收它们属于相同的访问级别的常量,变量,属性或下标。
class Samplepgm {
   private var counter: Int = 0{
      willSet(newTotal){
         println("Total Counter is: \(newTotal)")
      }
      didSet{
         if counter > oldValue {
            println("Newly Added Counter \(counter - oldValue)")
         }
      }
   }
}</div>

let NewCounter = Samplepgm()
NewCounter.counter = 100
NewCounter.counter = 800
</div>
当我们使用 playground 运行上面的程序,得到以下结果

Total Counter is: 100
Newly Added Counter 100
Total Counter is: 800
Newly Added Counter 700
</div>

访问控制的初始化和默认初始化器
自定义初始化函数可分配的接入级别小于或等于它们初始化的类型。一个必需的初始化必须具有相同的访问级别,因为它们和类相同。一个初始化的参数的类型不能比初始化自己的访问级别更私密(更高)。

声明每个和初始化每个子类, “required” 关键字需要在init()函数之前定义。
class classA {
   required init() {
      var a = 10
      println(a)
   }
}

class classB: classA {
   required init() {
      var b = 30
      println(b)
   }
}

let res = classA()
let print = classB()
</div>
当我们使用 playground 运行上面的程序,得到以下结果

10
30
10
</div>

默认初始化具有相同的访问级别,因为它初始化,除非该类型被定义为公共类型。 当默认初始化

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Swift 访问控制
  • 深入理解Swift中的访问控制关键字
  • Swift语言中的一些访问控制设置详解
  • Swift中的访问控制和protected

相关文章

  • 2017-05-28用Swift编写自动录音器
  • 2017-05-28在Mac OS的终端中运行Swift应用的方法
  • 2017-05-28详解Swift编程中的方法与属性的概念
  • 2017-05-28超全面的Swift编码规范(推荐)
  • 2017-05-28Mybatis中 SQL语句复用
  • 2017-05-28Swift 3.0基础学习之枚举类型
  • 2017-05-28Swift流程控制之循环语句和判断语句详解
  • 2017-05-28Swift中动态调用实例方法介绍
  • 2017-05-28如何设计一个秒杀系统
  • 2017-05-28ssh框架实现文件上传下载实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解Swift编程中下标的用法
    • ssh框架实现文件上传下载实例代码
    • 通过一个map替换字符串中指定的字符变量方法
    • MyBatis 参数类型为String时常见问题及解决方法
    • Swift中的访问控制和protected
    • Swift编程中的switch...case语句实例解析
    • Swift中的指针操作和使用详细介绍
    • eclipse中maven插件安装教程
    • Swift编程之枚举类型详解
    • 实例讲解Swift中引用类型的ARC自动引用计数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有