方法定义
Java中的方法只能定义在类型中(包括接口、类、枚举类型)。
示例:
public double doSomethingMethod (double argOne, String argTwo, …) {
// statements
}
方法的一般定义(6个部分):
1. 修饰符,例如:public, private, static, …;
2. 返回值类型——方法返回的数值类型或者对象类型,如果方法不返回任何值,则为void;
3. 方法名;
4. 由括号包围的参数列表——如果没有参数,保留空括号();
5. 异常列表;
6. 方法体,使用大括号{}包围。
方法签名:方法名+参数列表
方法签名是Java中识别方法的唯一依据。
方法定义示例的方法签名为:
doSomethingMethod (double argOne, String argTwo,…)
方法命名:
1. 小写动词,或者以小写动词开头的多个词的组合;
2. 多个词组合的方法名,从第二个词开始,每个词首字母大写。
重载方法:
在同一个类中定义多个方法名相同的方法,但是它们的方法签名不同(参数列表不同)。
注意:Java是通过方法签名区别不同方法,方法签名包括“方法名”和“参数列表”。只要方法列表中的参数“类型”和“数量”不同,就是不同的方法签名。
示例:
public class DataArtist {
public void draw (String s) {
// statements
}
public void draw (int i) {
// statements
}
public void draw (double f) {
// statements
}
}
Ref:
http://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
注意:
同一个类的方法中不能包含有相同方法签名的多个方法。
重载方法需要谨慎使用,使用重载方法可能降低代码的可读性。
方法参数名
方法参数名在所定义的方法内有效。
如果类定义中,域名和方法中的参数名相同,在方法中类的域被方法参数替代,叫做域遮蔽。如果在方法中要访问类的域,需要使用全路径访问。
示例:
public class Circle {
private int x, y, radius;
// 方法定义中的参数x和y与类定义中的域名x和y相同,
// 在setOrigin方法中,方法参数遮蔽了域了类。
public void setOrigin (int x, int y) {
// 使用方法参数的x值
System.out.print (x);
// 使用类中的域x值,使用关键字this交访问符(.)组成域的全路径。
System.out.print(this.x);
}
}
Ref:
http://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html