我不是太认同在object-c programming一书中对面向对象编程的阐述和解释,不是概念出现问题,而是不利于入门新手对这一概念的理解。
从这种编程理念讲起,它存在的理由就是通过一种更为紧凑的逻辑结构来进行代码的组合和重用,毕竟面向过程的编程方式更适合解决一种特定的需求,比如我们只想进行特定的一次性操作,在嵌入式开发过程中更多的采用了这种思路,例如我们在微波炉上点击蒸煮米饭,其执行的代码程序是不会考虑先在其内存中分配一个对象空间然后调用相应的蒸煮方法,然后再一番执行后释放内存。不是不可以,而是没必要。
它的方式:
设定火力 1, 设定火力1的执行时间
设定火力2, 设定火力2的执行时间
开启计时器
开启主电力系统
开启微薄发射
执行
完成
终止
释放指令
一个顺序过程下来简单明了,并无复杂的逻辑关系和相互继承的操作方法。
回到面向对象编程的环节上,我们可以用更有逻辑表现力的方式来完成上述操作。
我们首先创建一个类,名字叫做 “电器”,然后为它创建2个方法(类的方法),“通电”,“断电”。很显然,不具备这两个功能的东西我不能把它称之为电器。
然后我们再创建一个类,“微波炉”,我们把“微波炉”设置成为“电器”的继承,既然“微波炉”继承了“电器”那么就意味着我们不需要再给“微波炉”重新定义 “通电”“断电”这2个方法了。
那么优势就从这里表现出来了。
到这里并没有结束,我们可以为“微波炉”再次设置它自己的方法,“烤肉”,“解冻”,“蒸煮米饭”。
问题的焦点回到了我们如何来执行具体的操作上了,比如,我们定义好了“烤肉”,但我们如何使用和激活它进行具体的运行呢?
我们必须要做的事情是,创建一个“微波炉”的对象,名字你可以随便起,比如“六月扯淡的人生”,我们通过这个对象来调用我们先前定义好的方法,“烤肉”。
比如:
创建“微波炉”对象:六月扯淡的人生
if (六月扯淡的人生.通电 == 真)
{
if ( 六月扯淡的人生.烤肉 == 成功 )
{ 六月扯淡的人生.断电 }
}else { printf "草,主控电路没启动,您歇了吧" }
这段伪代码不够严谨,但体现了一种通过对象来调用它自己方法的思路,并体现了一部分“继承”的概念,我们并没有在“六月扯淡的人生”所属的“微波炉”类中定义“通电”“断电”方法,它是继承“电器”而来的。
如何用 object-c 的语言来实现具体的操作?我们应该用什么语法,以及oc是否从定义层面上就存在诧异性呢?
如果微波炉万一在烧烤的过程中把肉烤糊了咋办?比如:
阅读(3839) | 评论(2) | 转发(0) |