1、定义方法需要在类型(枚举,结构体,类)里定义,不能独立定义,独立定义的是函数

2、方法要么属于该类型本身,要么是该类型的一个实例

3、不能独立执行方法,执行方法必须使用类型或实例作为调用者

注意:枚举、结构体中方法使用static修饰,类中用class修饰,都属于类型方法,否则的话属于实例方法

 1 import Foundation
 2  3 class SomeClass{
 4  func test(){
 5 println("====test 方法 ======")
 6  }
 7 class func bar(#msg:String){
 8 println("====bar 方法 ======,传入的参数为:\(msg)")
 9  }
10 }
11 //创建实例 12 var sc = SomeClass()
13 //将sc的test方法分离成函数,前面类型用()->()表示函数类型,后面的取方法不能带上() 14 var f1:()->() = sc.test//如果带上括号就是调用实例的方法
15 //将sc的bar方法分离成函数 16 var f2:(String)->Void = SomeClass.bar
17 18 //然后使用f1()就相当于调用的就是sc.test() 19 f1()
20 //然后使用f2()就相当于调用的就是SomeClass.bar(msg:) 21 f2("hello")
22 23 24 //************方法的外部形参名*************//
25 class Person{
26  var name:String
27  init(name:String){
28 self.name = name
29  }
30  func eat(food:String, _ drink:String ,cigarette:String){
31 println("\(self.name)吃着\(food)喝着\(drink)抽着\(cigarette)")
32  }
33 }
34 var p = Person(name: "Tom")
35 p.eat("烤鸭", "啤酒", cigarette: "雪茄")
36 /*Swift默认为除第一个参数外部添加了外部参数名,与局部参数名一样,如果不需要的话,则用_下划线的方式去掉,添加了外部参数名,不是添加了#号*/ 37 38 /************值类型的可变方法*************/ 39 struct JKRect {
40  var x:Int
41  var y:Int
42  var width:Int
43  var height:Int
44  mutating func moveByX(x:Int,y:Int){
45 self.x += x
46 self.y += y
47  }
48 }
49 var rect = JKRect(x: 20, y: 12, width: 200, height: 300)
50 rect.moveByX(100, y: 90)
51 println("矩形的左上角的x坐标为:\(rect.x),y坐标为\(rect.y)")
52 /*注意:常量类型的结构体,枚举时不可变的*/

运行结果是:

Swift面向对象基础(中)——Swift中的方法相关推荐

  1. Swift面向对象基础(上)——Swift中的枚举

    Swift中枚举 学习笔记来自<极客学院> 1 import Foundation 2 3 /**********1*Swift定义枚举的语法格式*************/ 4 /* 5 ...

  2. Swift面向对象基础(上)——Swift中的类和结构体(下)

    2019独角兽企业重金招聘Python工程师标准>>> 学习来自<极客学院> 1 import Foundation 2 3 class User { 4 var nam ...

  3. Swift面向对象基础(中)——Swift中的存储属性和计算属性

    1.存储属性:存储在类.结构体里的变量或者常量 2.分为:实例存储属性.类型存储属性 3.所有的存储属性必须显示的指定初始值,在定义时或者构造器当中指定 4.可选类型的存储属性可以不指定初始值 1 i ...

  4. swift面向对象之属性

    swift面向对象之属性 swift属性 存储属性 可以存储常量和变量 惰性存储属性 语法:lazy var 变量 惰性存储属性只有在用的时候才会完成真正的初始化,刚开始的初始化代码只是类型占位,并没 ...

  5. IOS中的swift和oc关于对象模型的description方法重写

    IOS中的swift和oc关于对象模型的description方法重写 先讲OC的,oc比较重要,放在最前面. 首先创建一个cocoa Touch Class,继承NSObject, 命名Person ...

  6. java中不允许一个方法在自身定义的内部调用自己_Java面向对象三大特性(基础篇)...

    面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA). 面向对象设计(OOD).面向对象程序设计(OOP)等新的系统开发方式模型的研究. 对语言 ...

  7. 中如何直接使用方法返回的值_java基础-2-方法、面向对象

    一.方法 1.1.定义:方法可以认为我们写程序中所要实现的某一个功能,方法中会包含很多条语句.流程控制.循环等,这些内容组合起来去处理一件事情. 1.2.方法的声明: 方法的声明位置必须写在类中,并且 ...

  8. swift面向对象之方法

    swift面向对象之方法 1.下标方法 下标方法仅用于实例,可以在类,结构体,枚举中使用,作用简化类型中的访问方式,注意以下几点 下标方法属于三栖方法,可用于类,结构体和枚举 下标方法的格式为subs ...

  9. Javascript基础与面向对象基础~第四讲 Javascript中的类对象

    今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一 ...

最新文章

  1. kaptcha图形验证码组件
  2. Spring-data-redis 反序列化异常
  3. Vue(二十一)使用express模拟接口数据
  4. 四叶草社交平台——十天冲刺(4)
  5. GItHub--Makedown语法学习(快速入门)
  6. MPLS ×××中Cisco和华为配置需求不同点
  7. 毕设题目:Matlab图像配准
  8. 最好用的服务器定时自动关机或重启软件
  9. imagej 基本操作
  10. SVN创建分支与合并
  11. 使用cuteftp实现SFTP上传
  12. 淘宝客用微博推广方法
  13. EXCEL常规格式数字转换为日期时间格式的方法
  14. matlab中subs怎么用,【转】MATLAB中subs函数效率低
  15. 简单银行账户管理系统
  16. 深入理解Moya设计
  17. arcgis统计矢量面内栅格数据像元值个数
  18. 怎么把录音文件转换成mp3格式,3个高效方法
  19. Sun的一个面试题(zz from newsmth)
  20. 去字节面试,直接让人出门左拐:Bean 生命周期都不知道!

热门文章

  1. Scala学习笔记(二)表达式和函数
  2. 有关UITableviewCell 重用内存 内部解析
  3. 卡巴斯基宣布高端静谧岑寂僻静产物PURE
  4. Halcon形态学操作、区域处理相关常用API
  5. 【小白冲冲冲!!!】37. ORBSLAM初始化时为什么要同时初始化H矩阵和F矩阵?
  6. matlab提示用户输入参数,调用函数显示输入参数不足
  7. centos7默认字体_如何更换CentOS(Linux)系统默认字体?
  8. C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
  9. java将数据从外部读入到程序称为_java复习与练习答案beta3(基本可信~~)
  10. 用python和sympy库解决方程组问题_使用Python的SymPy库解决数学运算问题的方法