W sensie dlaczego parametrem jest nowy obiekt Lock skoro w konstruktorze chcemy zmiennej.
Nie rozumiem. Przecież obiekty można normalnie przypisywać do zmiennych, a więc również przekazać przez argument.
Czy byśmy to zapisali tak:
$chest = new Chest(new Lock());
czy tak:
$lock = new Lock();
$chest = new Chest($lock);
to jedno i to samo.
A z aktualnymi kursami jest trochę problem. Od zera do webdeva na YouTube jest całkiem spoko, ale tam mocno ogólnie wszystko jest omawiane moim zdaniem - dla mnie wystarczająco, dla początkującego nie wiem. Ja w swoim kursie też pisałem trochę o obiektowości: https://www.phpdevs.pl/programowanie-obiektowe, dalsze lekcje w przygotowaniu.