Java类中的方法被其他类调用

在Java中,类是面向对象编程的基本单位,它封装了属性和方法,并通过方法来暴露类的功能。当我们创建一个类时,我们经常需要将其方法开放给其他类使用。本文将介绍Java类中的方法如何被其他类调用,并提供相应的代码示例。

类之间的关系

在介绍方法调用之前,我们先来了解一下Java中类之间的关系。通常,类之间的关系可以分为三种:

  1. 继承关系(Inheritance):一个类继承另一个类的属性和方法。
  2. 关联关系(Association):一个类与另一个类有关联,但彼此独立存在。
  3. 依赖关系(Dependency):一个类依赖于另一个类的方法。

在方法调用中,我们主要涉及到关联关系和依赖关系。

关联关系中的方法调用

关联关系是指一个类与另一个类有关联,但彼此独立存在。在关联关系中,一个类可以通过对象的引用调用另一个类的方法。

下面是一个示例代码,演示了一个班级和学生之间的关联关系。班级类(Classroom)中有一个学生(Student)的属性,并提供了一个方法来获取学生的姓名:

class Classroom {
    private Student student;

    public Classroom(Student student) {
        this.student = student;
    }

    public String getStudentName() {
        return student.getName();
    }
}

class Student {
    private String name;

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student("Tom");
        Classroom classroom = new Classroom(student);
        System.out.println(classroom.getStudentName()); // 输出 "Tom"
    }
}

在上面的代码中,班级类(Classroom)中的方法getStudentName()通过学生对象的引用student调用了学生类(Student)中的方法getName()。在Main类的main()方法中,我们创建了一个学生对象student,并将其作为参数传递给班级对象classroom的构造函数。然后通过调用classroom.getStudentName()方法获取学生的姓名,并将结果打印输出。

这就是一个典型的关联关系中的方法调用。

依赖关系中的方法调用

依赖关系是指一个类依赖于另一个类的方法。在依赖关系中,一个类可以通过接口或者类的方法参数来调用其他类的方法。

下面是一个示例代码,演示了一个订单(Order)类依赖于一个计算器(Calculator)类的方法:

interface Calculator {
    int calculate(int a, int b);
}

class Order {
    private Calculator calculator;

    public Order(Calculator calculator) {
        this.calculator = calculator;
    }

    public int getTotal(int quantity, int price) {
        return calculator.calculate(quantity, price);
    }
}

class CalculatorImpl implements Calculator {
    public int calculate(int a, int b) {
        return a * b;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new CalculatorImpl();
        Order order = new Order(calculator);
        int total = order.getTotal(5, 10);
        System.out.println(total); // 输出 50
    }
}

在上面的代码中,订单类(Order)通过接口Calculator依赖于计算器类(CalculatorImpl)的方法calculate()。在订单类的构造函数中,我们将计算器对象作为参数传递进去,并将其保存在订单类的私有属性calculator中。然后通过调用calculator.calculate()方法获取总金额,并将结果返回。在Main类的main()方法中,我们创建了一个计算器对象calculator并将其作为参数传递给订单对象order的构造函数。然后通过调用order.getTotal()方法获取订单的总金额,并将结果打印输出。

这就是一个典型的依赖关系中的方法调用。

类图

下面是上述示例代码的类图:

classDiagram
    class Classroom {
        - Student student
        + Classroom(Student student)
        + String getStudentName()
    }

    class Student {
        - String name