Java方法声明必须包含访问修饰符、可选修饰符、返回类型、方法名和参数列表,如public static int calculateSum(int a, int b);参数列表中可变参数须置于末尾且唯一,方法签名由名称和参数类型决定,返回类型不参与重载识别。
Java里定义方法必须写清楚访问修饰符、返回类型、方法名和参数列表,缺一不可,否则编译直接报错。
一个合法的Java方法声明形如:public static int calculateSum(int a, int b)。它由五部分组成:访问修饰符(public)、可选修饰符(static)、返回类型()、方法名(calculateSum)和带类型的参数列表((int a, int b))。
常见错误包括:
void都不能省)int a, b 是错的,必须写成 int a, int b)1sum() 或 my sum() 都不合法)void 表示方法不返回任何值,函数体里不能有 return 后跟表达式;非 void 方法则必须保证每条执行路径都以 return 结束,否则编译失败。
例如:
public void logMessage(String msg) {
System.out.println(msg);
// 这里可以没有 return
}
public int getMax(int x, int y) {
if (x > y) {
return x;
}
return y; // 不能只在 if 里 return,else 缺失会导致编译错误
}
Java方法参数是“按值传递”,但对象类型传的是引用的副本——这点不影响声明语法,但影响你对参数是否可变的理解。
声明时要注意:
String... args)必须放在参数列表最后,且只能有一个this.,否则局部变量会遮蔽字段 List asList(T... elements)
static 方法属于类,不依赖对象实例,调用时用 ClassName.methodName();普通方法属于实例,必须先 new 出对象再调用。
选择依据很实际:
static
this 或非静态字段 → 只能是非 static
Math、Obj
ects)几乎全是 static 方法static,否则就不是构造器了最常被忽略的是:方法签名(名称 + 参数类型列表)决定了重载,但返回类型不参与签名。两个方法仅返回类型不同,编译器会拒绝编译。