swift协议_010-swift协议protocol

//: Playground - noun: a place where people can play

import UIKit

//-----协议-------//

//协议:声明一组属性和方法,由协议的签订者来实现协议方法。

//1.协议的声明
protocol WXHLProtocol {

    //声明一组方法
    func doHomework()

    func dontLate()

    //3.Swift的协议中可以声明属性
    var money : Int {set get}
    var classNumber : Int {get}

}

//2.协议的签订 类名:协议名
class Person : WXHLProtocol {

    var name : String

    init(name : String) {
        self.name = name
    }

    //协议的签订者中必须实现协议方法
    func doHomework() {
        print("\(name)在写作业")
    }

    func dontLate() {
        print("\(name)不要迟到")
    }

    //实现协议中声明的属性
    var money : Int {
        set {
            self.money = newValue

        }

        get {
            return self.money

        }
    }

    var classNumber : Int {

        return 1000
    }

}

let p = Person(name: "小宝")
p.doHomework()
p.dontLate()

//4.协议的继承 子协议 : 父协议
protocol EngineerProtocol : WXHLProtocol {

    var job : String {get set}
    var header : String {get}

}

class SwiftEngineer : Person, EngineerProtocol {

    //协议中声明的属性可以是存储属性,也可以计算属性
    var job : String = "Swift Engineer"

    var header : String = "TeamLeader"

}
时间: 2024-08-05 10:47:06

swift协议_010-swift协议protocol的相关文章

Swift 学习笔记(面向协议编程)

在Swift中协议不仅可以定义方法和属性,而且协议是可以扩展的,最关键的是,在协议的扩展中可以添加一些方法的默认实现,就是在协议的方法中可以实现一些逻辑,由于这个特性,Swift是可以面向协议进行编程的. 扩展协议和默认实现 protocol Record { var wins: Int{get} var losses:Int{get} func winningPercent() -> Double } struct BasketballRecord:Record,CustomStringCon

Swift中文教程(七)--协议,扩展和泛型

Protocols and Extensions 协议(接口)和扩展 Swift使用关键字protocol声明一个协议(接口): 类(classes),枚举(enumerations)和结构(structs)都可采用协议(protocol): 1 class SimpleClass: ExampleProtocol { 2 var simpleDescription: String = "A very simple class." 3 var anotherProperty: Int

swift 笔记 (十九) —— 协议

协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性.类似于java里的interface的作用.但协议并不会实现具体的功能. 我猜这个名字源于OO中提到的"契约",但我并不觉得这名字很好,反而是interface这名字更容被接受,因为我觉得协议这个名字很容易和网络编程的时候的网络协议搞混,网络协议也通常简称为协议. 语法: protocol MyProtocol { //协议定义 } struct MyStruct: MyProtocol1, MyProtoc

Swift学习——A Swift Tour 协议和扩展

Protocols and Extensions Protocols  协议的使用 使用关键字 protocol 定义一个协议 protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust() } 类,枚举和结构体都可以实现协议 class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very sim

IOS开发之----协议与委托(Protocol and Delegate) 实例解析

1 协议: 协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法. 它是对对象行为的定义,也是对功能的规范. 在写示例之前我给大家说下@required和@optional这两个关键字 他们两个是在声明协议的时候用到,@required是必须实现的方法,要不会报黄色警告[email protected]是可选实现!实现还是不实现都不会报警告! 示例: 1 2 3 4 5 6 7 8 9 // GoodChild.h #import @protocol GoodChild -(v

Telnet协议,SSH协议(安全外壳协议),SSL协议(安全套接层协议),HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议

2.Telnet协议 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序(如putty),用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法. 3.SS

HTTP协议(HyperText Transfer Protocol,超文本传输协议)

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准.HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等).:::::::::::::::::::::::::::::::::::::::::::::::::::::HTTP 简介http:/ /www.iis7.com/b/plc/HTTP协议是Hyper Text Transfer Protoco

计算机网络-链路层(2)多路访问控制协议(multiple access control protocol)

单一共享广播信道,如果两个或者两个以上结点同时传输,会互相干扰(interference) 冲突(collision):结点同时接收到两个或者多个信号→接收失败! MAC协议采用分布式算法决定结点如何共享信道,即决策结点何时可以传输数据. 其必须基于信道本身,通信信道共享协调信息.无带外信道用于协调. 信道划分(channel partitioning)MAC协议 TDMA: time division multiple access TDM 将时间划分为时间帧(timeframe),并进一步划

Swift Explore - 关于 Swift 中的 isEqual 的一点探索

在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等. 我们来看一个 Objective-C 的例子就会更加明白了: NSArray *arr1 = @[@"cat",@"hat",@&qu

深入理解HTTP协议、HTTP协议原理分析

深入理解HTTP协议.HTTP协议原理分析 目录(?)[+] http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 26