对象的方法

作者: 河许人 | 来源:发表于2016-11-16 23:34 被阅读411次
方法.jpg
从变量到数组再到对象,我们打了一系列的比喻,形象的说明了它们的含义。我们把变量比作吃饭的碗,数组是多功能饭盒,对象呢还是饭盒,但是不是简单的饭盒,特点是允许自定义它的行为。这个饭盒中支持方法(函数),具有属性,灵活应用,威力无穷,这样呢,她就更加神秘和抽象了,让我们一起来领略一下她的风采吧!

首先了解一下什么是对象的方法,方法就是对象的函数(可以先简单这么理解)。每个方法都有一个名称为 this 的隐藏参数, 它实际上包含了指向继承自此类的对象的引用。不过, 它也可以包含指向此类自身或派生类的引用, 取决于如何调用这个方法。 方法被通过引用存储到类对象中。
上边已经讲到对象的创建方法{}、[]、Object() 和 Array() 和释放方法,想必大家也都了解了!
此外,对象还支持以下的方法:

  • InsertAt / RemoveAt
  • Push / Pop
  • Delete
  • MinIndex / MaxIndex / Length
  • SetCapacity / GetCapacity
  • GetAddress
  • _NewEnum
  • HasKey
  • Clone
  • ObjRawSet (函数)

弃用的 (不推荐使用):

  • Insert
  • Remove

每个方法都有对应的 obj前缀函数, 这样可以区别于自定义行为创建的对象
这些 obj前缀函数是被推荐专门用于此目的的函数。
要调用这种函数, 函数名称的前缀为 "Obj" 然后传递目标对象作为第一个参数。例如:

array := [1, 2, 3]

MsgBox % ObjMaxIndex(array) " = " array.MaxIndex()

如果 "obj" 前缀函数 的参数对象或值的类型不正确,它将返回空字符串。
下边我们就拿InsertAt 作为例子详细讲解一下,其他的方法请自行查阅帮助哈!
InsertAt 插入一个或多个值到线性数组中的给定序号位置中。

Object.InsertAt(Pos, Value1 [, Value2, 。。。 ValueN])

Pos
要将 Value1 插入到数组中的序号数字。 随后的值将插入到 Pos+1, Pos+2, 等等。

Value1 。。。
要插入数组的一个或多个值。 要将另一个数组中的值一次性插入, 传递 theArray* 作为最后一个参数。

备注
InsertAt 对应的是 RemoveAt
作为关联数组对象, Pos 的整数值同时也成为 Value1在数组对象中的键名。 位于 Pos 之前或之后的键值对都会被自动改为正确的对应关系数值,哪怕键对应的值不存在也是如此 (因为对象是稀疏数组)。 例如:

x := [] 

x.InsertAt(1, "A", "B") ; => ["A", "B"] 

x.InsertAt(2, "C") ; => ["A", "C", "B"]

; 稀疏(不连续)/未赋值 元素也被保留: 

x := ["A", , "C"]

x.InsertAt(2, "B") ; => ["A", "B", , "C"] 

x := ["C"] 

x.InsertAt(1, , "B") ; => [ , "B", "C"]

InsertAt 最好仅用于处理对象中的整数键表示线性数组中位置的情况。如果对象中包含不连续的任意值整数键,比如 ID (不连续的序号) 或 handles (句柄), InsertAt 会产生出乎意料的效果。 例如:

x := [], handleX := 0x4321, handleY := 0x1234 

x.InsertAt(handleX, "A") 

MsgBox % x[handleX] ; A - 正确 

x.InsertAt(handleY, "B") 

MsgBox % x[handleX] ; 返回空值 

MsgBox % x[handleX+1] ; 这才是 "B" 的正确 "位置"

InsertAt 不会影响文本或对象键, 所以可以安全的用于混合键类型的对象。

好了今天的文章就到这里,一定要掌握对象的方法,才能了解她,这是她的小脾气。

相关文章

  • 学习途中之类方法和对象方法

    对象方法1、 对象方法/实例方法我们之前学习的方法就叫做对象方法.对象方法的调用必须要先创建对象,通过对象来调用....

  • 1.8. 对象方法的声明和实现

    目录 对象方法声明 对象方法实现 1.对象方法声明 格式 特征对象方法以-开头如 -(void)xx;对象方法只能...

  • OC +方法和-方法(补充篇)

    类方法和对象方法1、对象方法:① 减号 - 开头;② 只能由对象来调用;③ 对象方法中能访问当前对象的成员变量(实...

  • OC语言基础

    第一课 1.对象方法和类方法区别 对象方法对象方法是属于对象的以减号-开头只能让对象调用,没有对象,这个方法根本不...

  • 数组&字符串方法&Math&Date

    数组方法 String 对象方法 数学Math方法 日期对象Date方法 Number对象方法 function对...

  • 「Objective-C」类和方法

    1. 类方法和对象方法 对象方法 减号 - 开头 只能由对象来调用 对象方法中能访问当前对象的成员变量(实例变量)...

  • Aspects 源码分析

    需求 hook 实例对象的方法(仅该对象的方法被hook) hook 类对象的方法(该类所有对象调用该方法的时候,...

  • 1.1.1. 函数与方法对比

    目录 对象方法 函数 对象方法:(1)对象方法的实现只能写在@implementation...@end中,对象方...

  • OC中的class方法

    实例对象的class方法 实例对象的class方法返回的是该实例对象的类对象 类对象的class方法 类对象的cl...

  • Java自学-类和对象 类方法

    Java的类方法和对象方法 类方法: 又叫做静态方法 对象方法: 又叫实例方法,非静态方法 访问一个对象方法,必须...

网友评论

    本文标题:对象的方法

    本文链接:https://www.haomeiwen.com/subject/tvxdpttx.html