方法用于操作对象以及它们的实例域。
其中每个方法都有显式参数以及隐式参数,隐式参数就是当前方法的对象,就是this;
这里,Java跟C++的方法有些差别:
- C++ 的类方法都是放在类外面,而Java的会放在类里面;
- 但对于C++,放在类里面的方法,表明该方法是inline函数;
看到这里,我再继续看了下inline,它到底是解决什么问题的呢?
这里是网上找到的解释:
inline用来定义一个类的内联函数,引入它的主要原因是用它替代C中形式的宏定义:
我们知道C中的宏定义主要就是一个内容替换,它在形式和使用上跟函数很相似,但效率更高,因为它用预处理器生成,不需要代码生成,参数压栈之类的;
但宏定义的坏处就是无法进行参数类型检查,返回值也不能被强转成合适的类型,带有隐患和局限性。而且对于C++这种有类的访问控制,全局性的宏定义就更加不适合
相比之下inline同样能实现宏定义的功能,也是直接替换,而且在方法的实现上定义,能够进行函数调用时的参数类型检查等等。而且它通常用于类成员函数的实现定义,能很好地使用类里的成员;
网友评论