Java类中的方法被其他类调用
在Java中,类是面向对象编程的基本单位,它封装了属性和方法,并通过方法来暴露类的功能。当我们创建一个类时,我们经常需要将其方法开放给其他类使用。本文将介绍Java类中的方法如何被其他类调用,并提供相应的代码示例。
类之间的关系
在介绍方法调用之前,我们先来了解一下Java中类之间的关系。通常,类之间的关系可以分为三种:
- 继承关系(Inheritance):一个类继承另一个类的属性和方法。
- 关联关系(Association):一个类与另一个类有关联,但彼此独立存在。
- 依赖关系(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