首页 行业 查看内容

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

2023-03-16 20:58:35

来源: 哔哩哔哩

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

将调用这个方法的对象的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虚拟机的任务。即时编译器会关注那些简短、经常调用而且没有被覆盖的方法调用,并进行优化

关键词:

最新新闻
回顶部