欢迎光临散文网 会员登陆 & 注册

java 核心技术-12版 卷Ⅰ- 4.3.7 隐式参数与显式参数

2023-03-16 21:03 作者:CC挑灯夜读_谷  | 我要投稿

    方法会操作对象并访问它们的实例字段。例如,以下方法

将调用这个方法的对象的salary 实例字段为一个新值。考虑下面这个调用:

    

其作用是将number007.salary字段的值增加 5%。具体地说,这个调用将执行以下指令

raiseSalary 方法有2个参数。第一个参数称为 隐式(implicit)参数,是出现在方法名前的Employee类型的对象。第二个参数是位于方法名后面括号中的数值,这是一个显式(explicit)参数。(有人把隐式参数称为方法调用的目标或接收者)

    可以看出,显式参数显式地列在方法声明中,例如 double byPercent。 隐式参数则没有出现在方法声明中。

    在每一个方法中,关键字 this 指向隐式参数。如果愿意,可以如下改写 raiseSalary 方法

    有些程序员更偏爱这样的风格,因为这样可以将实例字段与局部变量明显地区分开来。

    C++ 注释: 在C++ 程序中,通常在类的外面定义方法:

 void Employee::raiseSalary(double byPercent) // C++, not java

{

    ...

}

如果在类的内部定义方法,那么这个方法将自动成为内联(inline)方法。

class Employee {

...

    int getName() {

        return name;

    }

}

在Java中,所有的方法都必须在类的内部定义,但这并不表示它们是内联方法。是否将每个方法设置为内联方法是Java虚拟机的任务。即时编译器会关注那些简短、经常调用而且没有被覆盖的方法调用,并进行优化


java 核心技术-12版 卷Ⅰ- 4.3.7 隐式参数与显式参数的评论 (共 条)

分享到微博请遵守国家法律