Вопросы по данной статье. 1)
public class Cat {

    String name;
    int age;

    public void sayMeow() {
        System.out.println("Мяу!");
    }

    public void jump() {
        System.out.println("Прыг-скок!");
    }

    public static void main(String[] args) {
        Cat barsik = new Cat();
        barsik.age = 3;
        barsik.name = "Барсик";

        barsik.sayMeow();
        barsik.jump();

    }
}
Почему для вызова методов sayMeow и jump обязательно упоминать имя переменной barsik? ссылка на метод не работает без переменной? 2)
public static void main(String[] args) {
    Truck first = new Truck();
    first.weight = 10000;
    Truck second = new Truck();
    second.weight = 20000;

    BridgeOfficer officer = new BridgeOfficer(15000);
    System.out.println("Грузовик номер 1! Могу я проехать, офицер?");
    boolean canFirstTruckGo = officer.checkTruck(first);
    System.out.println(canFirstTruckGo);

    System.out.println();

    System.out.println("Грузовик номер 2! А мне можно?");
    boolean canSecondTruckGo = officer.checkTruck(second);
    System.out.println(canSecondTruckGo);
}
"Программа вызвала метод officer.checkTruck(first), метод все посчитал и вернул программе результат — true, а программа сохранила его в переменной boolean canFirstTruckGo. Теперь может делать с ним что хочет" На основании чего возвращается результат программе, если отсутствует команда return в конце метода? 3.
BridgeOfficer officer = new BridgeOfficer(15000);
    System.out.println("Грузовик номер 1! Могу я проехать, офицер?");
    boolean canFirstTruckGo = officer.checkTruck(first);
    System.out.println(canFirstTruckGo);

    System.out.println();

    System.out.println("Грузовик номер 2! А мне можно?");
    boolean canSecondTruckGo = officer.checkTruck(second);
    System.out.println(canSecondTruckGo);
Переменная "15000" не обозначена никаким типом, просто указанное число в скобках. Каким же образом происходит проверка этого параметра и его сравнение с весом грузовика?