Lo que yo pienso es que por más clase/objeto que utilizas, sigues programando estructurado. Ojo: no es lo mismo escribir clases que programar orientado a objetos (aunque es un primer paso).
Cuando creas una instancia de esa clase, automáticamente se ejecuta:
- Conexión a la base de datos mysql. (mysql_connect)
- Consulta por id de usuario. (mysql_query)
- Obtener los datos del usuario del resultset. (mysql_fetch)
- Guardar esos datos como atributos del objeto.
- Imprimir el objeto.
La idea de programar orientado a objetos es más o menos (ojo, que no domino para nada el tema, acabo de empezar) darle flexibilidad, extensibilidad, facilidad de mantenimiento a tus aplicaciones y reusabilidad a tus clases.
Por ejemplo:
Qué pasaría si mañana cambias tu aplicación a un servidor que no utiliza mysql sino postgreSQL u otro dbms?? Pues esta clase no te serviría para nada tal como está. y si además hay un sistema de noticias, otro de comentarios, otro de estadísticas, etc, etc... todos conectándose y haciendo directamente mysql_connect... pues ninguna de ellas te serviría y tendrías que reescribir prácticamente todas las clases de tu aplicación para que funcionen con postgreSQL.
La idea es que sólo tengas que cambiar una clase (o un pequeño grupo de ellas) que se encargan de interactuar con la base de datos. Esto sería una capa de abstracción de la BD. Entonces aquí en lugar de una sola clase usuario, tendrás otra(s) clase(s) que se encargará(n) de "mapear" el registro de la BD en un objeto. Además esas clases te servirán para todos los otros módulos de tu aplicación. Con lo que si cambias de dbms, sólo tendrás que cambiar esas clases sin tocar lo demás.
De la misma manera para imprimir los datos (como dice sism82). Si la clase los imprime en HTML directamente, es posible que luego tu aplicación crezca y ya no sólo necesites hacerlo en HTML, sino en XML, una versión para impresión, o simplemente más plantillas para la misma página, etc... Para eso tendrías que hacer otra clase igual que haga lo mismo (exactamente), pero que al final no los imprima en el mismo HTML sino de otra forma y así repetir toda la clase para cada plantilla de la misma página... o sea, no estarías reutilizando nada.
Como ya te dijo sism82, trat de que tu clase "Usuario" sea eso: un usuario con sus características (atributos) y sus acciones posibles (métodos)... deja la tarea de la conexión a la base de datos y la impresión del HTML a otras clases.
Saludos