Objective-C 关于类的成员函数的一些理解
2011-07-05 15:08
225 查看
在封装OC类的时候,类可能包含成员函数,按照以前的说明,类的成员函数需要需要在头文件中声明,然后在源文件中编写函数的实现。然后我在看别人写的源代码的时候发现,有些函数是没有在类的头文件中声明,然后直接就在类的源文件定义并调用。这又是为什么呢,为什么有些在头文件中声明,有些在头文件中没有声明呢?
这点情况跟类的成员变量有点类似,有些函数我们在头文件中声明,我们就可以将这些函数理解为该类的公共函数(public类型),对于那些没有在头文件中声明,却在类的实现文件中定义的函数,我们可以将这些成员函数看成(理解)是类是的私有(private)类型的成员函数。 对于Public类型的函数,我们可以通过类的实例直接调用,对于Private类型的函数,我们就不能通过类的实例来调用,这些类型的函数我们就供其他函数的调用。通过这样的假设,我们可以很好的理解 本文开头提出问题。
可是,实际上,不管oc中的成员函数是否在头文件中声明,通过类的实例都可以调用这些成员函数,但是调用这两种函数还是稍微有些区别的,当调用没有声明过的成员函数的时候,在编译程序的时候,编译器会给出一个提示,提醒用户当前的函数可能不会有响应,如果继续执行函数,可能会发现,App是可以运行的,并且可能会生成正确的结果。如果从这里看来,似乎函数在头文件是否声明都问题不大,可是,可是,可是,我强烈的建议,我们在编写Objective-c函数类的时候,我们严格按照根据实际需求来编写函数,在设计函数的时候,如果不是提供给外部的接口,我们就尽量(强烈建议)不要在头文件中声明,仅仅作为内部的成员函数来调用,如果成员函数需要作为接口提供给外部的开发人员,我们就需要将该函数在头文件中声明,并且对于这类函数,我们尽量不要在内部调用,仅仅作为外部接口调用。
THE END !
2011-07-05 执笔与BeiJing
这点情况跟类的成员变量有点类似,有些函数我们在头文件中声明,我们就可以将这些函数理解为该类的公共函数(public类型),对于那些没有在头文件中声明,却在类的实现文件中定义的函数,我们可以将这些成员函数看成(理解)是类是的私有(private)类型的成员函数。 对于Public类型的函数,我们可以通过类的实例直接调用,对于Private类型的函数,我们就不能通过类的实例来调用,这些类型的函数我们就供其他函数的调用。通过这样的假设,我们可以很好的理解 本文开头提出问题。
可是,实际上,不管oc中的成员函数是否在头文件中声明,通过类的实例都可以调用这些成员函数,但是调用这两种函数还是稍微有些区别的,当调用没有声明过的成员函数的时候,在编译程序的时候,编译器会给出一个提示,提醒用户当前的函数可能不会有响应,如果继续执行函数,可能会发现,App是可以运行的,并且可能会生成正确的结果。如果从这里看来,似乎函数在头文件是否声明都问题不大,可是,可是,可是,我强烈的建议,我们在编写Objective-c函数类的时候,我们严格按照根据实际需求来编写函数,在设计函数的时候,如果不是提供给外部的接口,我们就尽量(强烈建议)不要在头文件中声明,仅仅作为内部的成员函数来调用,如果成员函数需要作为接口提供给外部的开发人员,我们就需要将该函数在头文件中声明,并且对于这类函数,我们尽量不要在内部调用,仅仅作为外部接口调用。
THE END !
2011-07-05 执笔与BeiJing
相关文章推荐
- objective-c中关于协议protocol的一些理解
- 关于new、delete和堆的一些理解
- 关于Myeclipse调试的一些个人理解
- 关于RunLoop的一些理解
- 关于c++中位运算&0xff的一些理解
- 关于球谐函数一些初步的理解
- objective-c 关于分类的理解
- 关于“const ”关键字和“static”关键字用法的一些理解
- 关于10gR2(10.2.0.1)clusterware的bug修复方法和对CRS进程的一些理解
- 关于字面量的理解(Objective-C Literals)
- 什么是工作流,关于工作流的一些理解
- 关于C++中类的一些理解
- 关于margin重叠的一些理解
- 关于c#中的一些感念的理解。
- 关于位段的一些理解
- 大象之关于对UML的一些理解
- 关于连续利率的一些理解
- 为自己记----android中关于actionbar的一些简单理解
- 关于负载均衡一些概念的正确理解
- 测试的一段小代码,关于javascript this 的一些理解