方法定义

    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