方法用于操作对象以及存取他们的实例域。例如,方法:
- public void raiseSalary(double byPercent)
- {
- double raise = salary * byPercent / 100;
- salary = salary + raise;
- }
将调用这个方法的对象的salary实例域设置为新值。看看下面这个调用:
- number007.raiseSalary(5);
它的结果将number007.salary域的值增加5%。具体地说,这个调用将执行下列指令:
- double raise = number007.salary * 5 / 100;
- number007.salary = number007.salary + raise;
raiseSalary方法有两个参数。第一个参数被称为隐式(implicit)参数,是出现在方法名前的Employee类对象。第二个参数位于方法名后面括号中的数值,这是一个显式(explicit)参数。
已经看到,显式参数是明显地列在方法声明中的显示参数,例如double byPercent。隐式参数没有出现在方法声明中。
在每一个方法中,关键字this表示隐式参数。如果需要的话,可以用下列方式编写raiseSalary方法:
- public void raiseSalary(double byPercent)
- {
- double raise = this.salary * byPercent / 100;
- this.salary = this.salary + raise;
- }
有些程序员更偏爱这样的风格,因为这样可以将实例域与局部变量明显地区分开来。
C++注释:在C++中,通常在类的外面定义方法:
- void Employee::raiseSalary(double byPercent) //C++, not Java
- {
- ...
- }
如果在类的内部定义方法,这个方法将自动地称为内联(inline)方法。
- class Employee
- {
- ...
- ing getName(){return name;} //inline in C++
- }
在Java程序设计语言中,所有的方法都必须在类的内部定义,但并不表示它们是内联方法。是否将某个方法设置为内联方法是Java虚拟机的任务。即时编译器会监视调用那些简洁、经常被调用、没有被重载以及可优化的方法。
转载于:https://blog.51cto.com/mrwucg/1055087