美文网首页
《Core Java》笔记:隐式参数与显式参数

《Core Java》笔记:隐式参数与显式参数

作者: 挺婷Tina | 来源:发表于2018-10-11 22:40 被阅读0次

方法用于操作对象以及它们的实例域。

其中每个方法都有显式参数以及隐式参数,隐式参数就是当前方法的对象,就是this;
这里,Java跟C++的方法有些差别:

  • C++ 的类方法都是放在类外面,而Java的会放在类里面;
  • 但对于C++,放在类里面的方法,表明该方法是inline函数;

看到这里,我再继续看了下inline,它到底是解决什么问题的呢?
这里是网上找到的解释:
inline用来定义一个类的内联函数,引入它的主要原因是用它替代C中形式的宏定义

我们知道C中的宏定义主要就是一个内容替换,它在形式和使用上跟函数很相似,但效率更高,因为它用预处理器生成,不需要代码生成,参数压栈之类的;

但宏定义的坏处就是无法进行参数类型检查,返回值也不能被强转成合适的类型,带有隐患和局限性。而且对于C++这种有类的访问控制,全局性的宏定义就更加不适合

相比之下inline同样能实现宏定义的功能,也是直接替换,而且在方法的实现上定义,能够进行函数调用时的参数类型检查等等。而且它通常用于类成员函数的实现定义,能很好地使用类里的成员;

相关文章

  • 《Core Java》笔记:隐式参数与显式参数

    方法用于操作对象以及它们的实例域。 其中每个方法都有显式参数以及隐式参数,隐式参数就是当前方法的对象,就是this...

  • 形式参数和实际参数

    形式参数(Arguments)又叫隐式参数(Arguments)实际参数(Parameters)又叫显式参数(Pa...

  • JS学习之理解函数调用

    隐式参数 当调用函数时,除了传入在函数定义中显式声明的参数之外,同时还传入了两个隐式参数: arguments与t...

  • 隐式转换

    1、隐式参数和隐式值 函数的形式参数如果用implicit修饰则是隐式参数,隐式参数可以有一个默认值,调用的时...

  • scala implicit 隐式转换和隐式参数

    1.什么是隐式转换和隐式参数?隐式转换是以implicit 声明的带有单个参数的函数隐式参数是函数或方法带有一个标...

  • scala-隐式机制及Akka

    隐式机制及Akka 隐式转换 隐式转换和隐式参数时Scala中两个非常强大的功能,利用隐式转换和隐式参数,可以提供...

  • iOS动画-CAAnimation使用详解

    理解了隐式动画后,显式动画就更加通俗易懂了。区别于隐式动画的特点,显式动画就是需要我们明确指定类型、时间等参数来实...

  • 第28课:Scala隐式转换内幕实践解密

    其实隐式转换有几种类型:隐式参数,隐式转换,隐式对象,和隐式类 首先看一下Scala的作用域 隐式参数冲突的情况:...

  • 关于函数调用

    1.当调用函数时,除了传入在定义中显式声明的参数之外,同时还传入两个隐式参数,arguments 和 this。 ...

  • Chapter 21《Implicit Conversions

    隐式转换和隐式参数 如果使用别人的代码库,无法进行修改,Scala进行扩展的方法是隐式转换和隐式参数。允许省略掉冗...

网友评论

      本文标题:《Core Java》笔记:隐式参数与显式参数

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