Geter i seter służy do ustawiania, pobierania zmiennych "pól" klasy.
Generalnie w getrach i seterach nie powinno być innej logiki - według zasad, funkcja powinna mieć jednoznaczną funkcjonalność, czyli tzw. pojedynczą odpowiedzialność.
Nie powinna robić "dodatkowych rzeczy" do których nie jest przeznaczona
Generalnie odchodzi się od stosowania również SETERÓW w większości przypadków, korzysta sie w ten sposób z konstruktora parametryzowanego.
scannera w getterze jest akceptowalne?
umieszczanie scannera jest niedopuszczalne. I jest to duży błąd.
this.setName(getName());
A co jeśli aktualnie "getName" jest nullem? i po co ustawiasz da obiektu "this... czyli instancji obiektu" próbujesz ustawić pobierając wartość "getName()" dla tego obiektu ?
Zrozum wpierw czym jest this, i jak działają metody w ramach INSTANCJI OBIEKTU