Почему элемент Arraylist передается в метод в качестве параметра, если явно это не указано?

Не знаю можно ли тут публиковать такое, но я недавно начал изучение программирования и встретил вот такой код. Никак не могу понять - почему он работает:)Вызова метода paySalary нигде нет. В него не передаются никакие данные. Он только принимает в качестве входящих данных String name. Нигде явно не указано, что String name это элементы ArrayList и тем не менее программа работает...

package com.javarush.task.pro.task12.task1209;

import java.util.ArrayList;

public class Solution {
    public static ArrayList<String> waitingEmployees = new ArrayList<>();
    public static ArrayList<String> alreadyGotSalaryEmployees = new ArrayList<>();

    public static void initEmployees() {
        waitingEmployees.add("Гвинно");
        waitingEmployees.add("Гунигерд");
        waitingEmployees.add("Боргелейф");
        waitingEmployees.add("Нифрод");
        waitingEmployees.add("Альбиуф");
        waitingEmployees.add("Иногрим");
        waitingEmployees.add("Фриле");
    }

    public static void main(String[] args) {
        initEmployees();
    }

    public static void paySalary(String name) {
        if (waitingEmployees.contains(name) && !alreadyGotSalaryEmployees.contains(name)) {
            alreadyGotSalaryEmployees.add(name);
            for (int i = 0; i < waitingEmployees.size(); i++) {
                if (waitingEmployees.get(i).equals(name)) {
                    waitingEmployees.set(i, null);
                    break;
                }
            }
        }
    }
}

Ответы (0 шт):