Tienen un error bastante importantes que rompe unos de los maximos principios de OOP y es el
Principio de Encapsulamiento, en pocas palabras todas las variables o atributos de una clase deberían ser privadas o protegidas y acceder a ellas mediante sus respectivos setter/getter.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.