标题:如何在Java类中调用没有static的方法

引言

在Java中,类是对象的模板,它包含了属性和方法。在类中,有两种类型的方法:静态方法(static methods)和实例方法(instance methods)。静态方法是属于类本身的方法,而实例方法是属于类的实例(对象)的方法。当我们需要调用一个静态方法时,我们可以直接使用类名来访问它。但如果我们需要调用一个实例方法,我们需要先创建一个类的实例,然后使用该实例来调用该方法。

本文将介绍如何在Java类中调用没有static的方法,并给出一些代码示例来解决一个具体的问题。

问题描述

假设我们有一个简单的汽车类Car,它具有以下属性:

  • 品牌(brand)
  • 型号(model)
  • 颜色(color)

我们还定义了一个实例方法drive(),用于驾驶汽车。

现在,我们有两个需求:

  1. 创建一个Car对象,并调用drive()方法,使之驱动起来;
  2. 创建多个Car对象,并调用各自的drive()方法,观察它们是否驱动起来。

解决方案

为了解决上述问题,我们可以按照以下步骤进行操作:

1. 创建Car类

首先,我们需要创建一个Car类,并定义它的属性和实例方法。下面是Car类的代码示例:

public class Car {
    private String brand;
    private String model;
    private String color;

    public Car(String brand, String model, String color) {
        this.brand = brand;
        this.model = model;
        this.color = color;
    }

    public void drive() {
        System.out.println("Driving the " + brand + " " + model + " in " + color + " color.");
    }
}

2. 创建一个Car对象并调用drive()方法

接下来,我们可以创建一个Car对象,并调用它的drive()方法。下面是一个示例代码:

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Toyota", "Camry", "red");
        myCar.drive();
    }
}

上面的代码中,我们首先创建了一个Car对象myCar,并传入了品牌、型号和颜色作为构造函数的参数。然后,我们使用myCar对象调用了drive()方法。执行上述代码,将会输出以下结果:

Driving the Toyota Camry in red color.

3. 创建多个Car对象并调用各自的drive()方法

如果我们想创建多个Car对象,并分别调用它们的drive()方法,我们可以使用一个Car对象的数组或集合。下面是一个示例代码:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Car> cars = new ArrayList<>();
        cars.add(new Car("Toyota", "Camry", "red"));
        cars.add(new Car("Honda", "Accord", "blue"));

        for (Car car : cars) {
            car.drive();
        }
    }
}

上面的代码中,我们创建了一个空的ArrayList对象cars,并使用add()方法添加了两个Car对象。然后,我们使用for-each循环遍历cars列表,对每个Car对象调用drive()方法。执行上述代码,将会输出以下结果:

Driving the Toyota Camry in red color.
Driving the Honda Accord in blue color.

类图

下面是Car类的类图,使用mermaid语法的classDiagram标识:

classDiagram
    class Car {
        - String brand
        - String model
        - String color
        + Car(brand: String, model: String, color: String)
        + drive()
    }

旅行图

下面是解决问题的旅行图,使用mermaid语法的journey标识:

journey
    title Java类中调用没有static的方法
    section 创建Car对象并调用drive()方法
    Main -> Car: 创建Car对象
    Main -> Car: 调用drive()方法
    section 创建多个Car对象并调用各自的drive()方法
    Main -> ArrayList: 创建空的ArrayList对象cars
    Main -> Car: 创建Car对象
    Main -> Car: 创建Car对象
    Main -> cars: