Objective-c是一门面向对象的编程语言,按照我手上的那本入门书籍,接下来我应该进入Objective-c的面向对象的基础部分。其实在学Java的时候已经学习过面向对象的编程思想了,所以对我而言面向对象的编程思想已没有什么让我感到新鲜的了, 当然这只是个人这么认为。但对于Objective-c这样的面向对象的编程语言是否在描述和使用的时候会和Java有什么样的不同呢?这可能才是我所关心的。报着这样的心理,我踏上了Objective-c面向对象的编程与Java有何异同的探索之旅。
我遇到的第一个关键概念-----间接(indirection)。初一看没觉的这哥们有什么特别的,光从字面就知道什么意思了,不就是一个间接嘛,不能直接,就间接呗。当然在Java中好像还真没有这样明确的提出这个概念。当我读到作者为解释间接而引用的那句行业老话时,我对这个间接开始肃然起敬。他说:“只要多添加一个间接层,计算机科学中就没有解决不了的问题了”,这是一句多么让人感到震撼的话语啊,直击我的浑身上下。这样描述可能是夸张了点,但说真的,确实有震撼到我了!当然了间接的含义还是像我当初想的那样一如继往的简单(不在代码中直接使用某个值,而是使用指向该值的指针。)
为了让读者更好的理解,作者举了个真实而简单的例示:你可能不知道自己最喜欢的比萨饼店的电话号码,但你知道你可以通过查阅电话号码簿来找到它,而使用电话号码薄来得到电话号码的这种方式就是间接的一种形式表现。这个例示举的场景的确让人能更好的去理解间接。但说到比萨,个人就不大喜欢了,呵呵,没什么好吃的,也不知道老外为什么就那么喜欢吃比萨。看完这个例子道也没看出他和Java中有什么概念一一对应的。但当我接着又读了一个例子后恍然大悟了,这里所说的间接的另一种表现形式不就是委托嘛。恩,有这样的味道。
学以致用,先搞几个能使用间接的实例,体验一下间接的用处和好处吧。
(1)变量与间接:基本变量就是间接的一种实际应用。
示例1:输出数字1到5<