Вместо echo лучше делать var_dump или хотя бы print_r на весь объект, они многое Вам прояснят.
В данном случае когда вы делаете
$this -> name = $name;
у объекта создается новое свойство name.
object(Customer)[1]
public 'name1' => null
public 'lastname' => string 'Doe' (length=3)
public 'name' => string 'John' (length=4)
PS Ну и вообще в коде у Вам путаница какая то.
Если Вы уж пишите геттер getName - то он должен что то возвращать, а не делать echo абсолютно другой переменной lastname.
PPS Я хочу верить что этот пример был Вами придуман для теста, и Вы не пишите геттеры/сеттеры там где в этом нет никакой необходимости