本文共 3007 字,大约阅读时间需要 10 分钟。
方法在Java中是类中最基本的代码组织单元,包含一个方法头和一个方法体。方法的结构如下:
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值;} 其中,修饰符是可选的,用于定义方法的访问范围。返回值类型决定了方法是否返回值,方法名和参数列表共同构成方法的签名。方法体包含具体实现该方法的功能代码。
在Java中,方法调用有两种形式:
Class.staticMethod(args)。对象引用.method(args)。在同一个类中调用时,可以省略类名,默认从当前类中寻找方法。需要注意的是,调用其他类中的方法时,必须明确指定类名。
public class MethodCall { public static void main(String[] args) { // 调用静态方法 MethodCall.staticMethod(10, 20); // 创建对象并调用成员方法 MethodCall obj = new MethodCall(); obj.memberMethod(30, 40); } public static void staticMethod(long a, long b) { System.out.println(a + " + " + b + " = " + (a + b)); } public void memberMethod(int a, int b) { System.out.println(a + " + " + b + " = " + (a + b)); }} 方法的返回值类型决定了方法是否能返回一个值。若方法没有声明返回值类型,默认为void类型。
return语句返回值。public class ReturnExample { public static int divide(int a, int b) { System.out.println("I love you!"); int c = a / b; return c; } public static void main(String[] args) { // 不接收返回值 divide(10, 3); // 接收返回值 int result = divide(10, 3); System.out.println(result); long lResult = divide(10, 3); System.out.println(lResult); System.out.println(divide(10, 3)); }} 缺少返回语句:
public static int m() { int a = 10; if (a > 3) { return 1; }}这种情况会导致无法保证返回值,无法通过编译。
返回值类型不匹配:
public static int m() { return true;}返回值类型与方法返回值类型不符,会导致编译错误。
方法重载(Overloading)是指在同一个类中定义多个方法具有相同的方法名,但参数列表不同。重载的主要用途是为不同参数类型或参数顺序提供不同的方法实现。
public class MethodOverloading { public static void m() {} public static int m(int a) { return a; } public static int m(int a, int b) { return b; } public static double m(double a, double b) { return b; } public static long m(long a, long b) { return b; }} 方法重写(Overriding)是指在子类中重新定义父类中的方法,使其具有与父类不同的行为。重写的方法必须满足以下条件:
package Polymorphism;public class Animal { public void move() { System.out.println("动物在移动。"); }}public class Bird extends Animal { @Override public void move() { System.out.println("鸟儿在飞翔。"); }}public class Cat extends Animal { @Override public void move() { System.out.println("猫在走猫步。"); }} | 区别点 | 重载(Overloading) | 重写(Overriding) |
|---|---|---|
| 修饰符 | 可以修改 | 一定不能缩小范围 |
| 返回值类型 | 可以修改 | 一定不能修改 |
| 参数列表 | 必须修改 | 一定不能修改 |
| 异常 | 可以修改 | 一定不能抛出新的异常 |
| 存在的条件 | 同一个类内 | 子类与父类继承关系 |
方法的重载和重写是Java多态性的重要体现。重载关注同一类中多个方法的参数差异,而重写关注子类对父类方法的重新定义。理解这两者有助于更好地利用Java的多态性特性。
转载地址:http://mmhq.baihongyu.com/