杰瑞科技汇

Java class如何正确调用方法?

对象与方法

在 Java 中,方法 是定义在类中的一段可执行的代码块,它执行特定的任务,要调用一个方法,你通常需要两样东西:

Java class如何正确调用方法?-图1
(图片来源网络,侵删)
  1. 对象:类的实例,方法通常作用于这个对象上。
  2. 方法名:你想要执行的那个方法的名称。

调用方法就是让一个对象去执行它内部的某个功能


第一步:创建类的实例(对象)

在调用一个对象的方法之前,这个对象必须被创建,这个过程叫做 实例化

语法: 类名 对象名 = new 类名();

  • 类名:你想要使用的类的名称。
  • 对象名:你给这个对象实例起的名称(变量名)。
  • new:关键字,用于在内存中创建一个新的对象实例。
  • 类名():调用类的构造函数来初始化这个新对象。

示例: 假设我们有一个 Car 类。

Java class如何正确调用方法?-图2
(图片来源网络,侵删)
// Car.java
public class Car {
    // 属性(成员变量)
    String color;
    int speed;
    // 构造方法
    public Car(String carColor) {
        this.color = carColor;
        this.speed = 0;
        System.out.println("一辆 " + color + " 色的汽车被创建出来了!");
    }
}

我们创建 Car 类的实例:

public class Main {
    public static void main(String[] args) {
        // 创建一个 Car 类的对象
        Car myCar = new Car("红色");
        // myCar Car 类的一个实例
    }
}

第二步:调用对象的方法

创建完对象后,我们就可以使用 点操作符 来调用它的方法。

语法: 对象名.方法名(参数列表);

  • 对象名:你之前创建的对象。
  • 点操作符,表示“...的...”。
  • 方法名:你想要调用的方法的名称。
  • (参数列表):如果方法需要输入,就在括号内提供相应的参数,如果没有参数,括号也为空。

示例: 我们给 Car 类添加一些方法。

// Car.java
public class Car {
    String color;
    int speed;
    public Car(String carColor) {
        this.color = carColor;
        this.speed = 0;
    }
    // 方法1:加速
    public void speedUp(int increment) {
        this.speed += increment;
        System.out.println("汽车加速 " + increment + " km/h,当前速度: " + this.speed + " km/h");
    }
    // 方法2:获取当前颜色
    public String getColor() {
        return this.color;
    }
    // 方法3:鸣笛
    public void honk() {
        System.out.println("嘀嘀!哔哔!");
    }
}

我们在 Main 类中调用这些方法。

// Main.java
public class Main {
    public static void main(String[] args) {
        // 1. 创建对象
        Car myCar = new Car("红色");
        // 2. 调用没有返回值且没有参数的方法
        myCar.honk(); // 输出: 嘀嘀!哔哔!
        // 3. 调用没有返回值但有参数的方法
        myCar.speedUp(20); // 输出: 汽车加速 20 km/h,当前速度: 20 km/h
        myCar.speedUp(30); // 输出: 汽车加速 30 km/h,当前速度: 50 km/h
        // 4. 调用有返回值且没有参数的方法
        String carColor = myCar.getColor();
        System.out.println("我的汽车是 " + carColor + " 的。"); // 输出: 我的汽车是 红色 的。
    }
}

不同类型方法的调用详解

Java 方法主要根据是否返回值和是否有参数进行区分。

无返回值、无参数

这类方法通常执行一个动作,不返回任何数据。

  • 方法定义: public void methodName() { ... }
  • 调用方式: 对象名.methodName();
myCar.honk(); // 正确
String result = myCar.honk(); // 错误!不能将 void 类型赋给 String 变量

无返回值、有参数

这类方法执行一个动作,并且需要外部传入数据。

  • 方法定义: public void methodName(参数类型 参数名) { ... }
  • 调用方式: 对象名.methodName(参数值);
myCar.speedUp(50); // 正确,传入整数 50
myCar.speedUp("很快"); // 错误!参数类型不匹配,需要 int,但传入了 String

有返回值、无参数

这类方法通常用于获取对象的状态信息,并返回一个值。

  • 方法定义: public 返回类型 methodName() { ... } (返回类型如 int, String, Car 等)
  • 调用方式: 变量名 = 对象名.methodName(); 必须用一个变量来接收返回值
String color = myCar.getColor(); // 正确,用 String 变量接收返回值
System.out.println(color);
myCar.getColor(); // 语法上没错,但返回值被丢弃了,通常没有意义

有返回值、有参数

这类方法根据传入的参数进行计算,然后返回一个结果。

  • 方法定义: public 返回类型 methodName(参数类型 参数名) { ... }
  • 调用方式: 变量名 = 对象名.methodName(参数值);
// 假设 Car 类有一个计算新速度的方法
public int calculateNewSpeed(int increment) {
    return this.speed + increment;
}
int newSpeed = myCar.calculateNewSpeed(10); // 调用并用 int 变量接收
System.out.println("如果再加速 10,速度将是: " + newSpeed); // 输出: 如果再加速 10,速度将是: 60

特殊情况:调用静态方法

如果一个方法被 static 关键字修饰,它就属于 ,而不是属于某个对象,调用静态方法的方式有所不同。

调用语法类名.静态方法名(参数列表);

或者,在同一个类中,可以直接用 方法名() 调用。

示例: 我们给 Car 类添加一个静态方法。

// Car.java
public class Car {
    // ... 其他代码 ...
    // 静态方法
    public static void displayCarInfo() {
        System.out.println("这是一个 Car 类的静态方法。");
        // 注意:静态方法不能直接访问非静态的成员变量(如 color, speed)
        // 因为非静态成员变量属于对象,而静态方法不属于任何特定对象。
        // System.out.println("颜色是: " + this.color); // 这行代码会编译错误!
    }
}

Main 类中调用这个静态方法:

// Main.java
public class Main {
    public static void main(String[] args) {
        // 调用静态方法,不需要创建 Car 对象
        Car.displayCarInfo(); // 输出: 这是一个 Car 类的静态方法。
        // 也可以通过对象调用,但不推荐,容易混淆
        Car myCar = new Car("蓝色");
        myCar.displayCarInfo(); // 同样可以工作,但编译器会给出警告
    }
}

总结与最佳实践

  1. 先创建,后调用:调用实例方法前,必须使用 new 关键字创建类的对象。
  2. 使用点操作符 :通过 对象名.方法名() 的格式来调用方法。
  3. 匹配参数:调用方法时,传入的参数数量、类型和顺序必须与方法定义完全匹配。
  4. 处理返回值
    • 如果方法有返回值(非 void),通常应该用一个变量来接收它。
    • 如果方法返回值是 void,它只是执行一个动作,不能被赋值给变量。
  5. 区分静态和实例
    • 实例方法:作用于对象,必须通过对象调用。
    • 静态方法:作用于类,通过类名调用,常用于工具类或与特定对象状态无关的操作。
  6. null 对象:如果尝试在一个为 null 的对象上调用方法,会抛出 NullPointerException 异常,所以在调用前最好确保对象已经被正确初始化。
    Car anotherCar = null;
    anotherCar.honk(); // 运行时这里会抛出 NullPointerException

希望这个详细的解释能帮助你完全理解在 Java 中如何调用类的方法!

分享:
扫描分享到社交APP
上一篇
下一篇