Bueno, te comento que yo mismo estoy haciendo una clase para el manejo de usuarios, para zonaphp.com y como bien comentaban antes... es aconsejable que si puedes utilizar alguna clase de acceso a bases de datos ( si es una de abstraccion, mejor ) puedes pasarla como parametro al objeto usuario en el momento de la instanciación, y utilizarla internamente.
En el caso que no tengas clases para el acceso a BD, entonces debes tener en cuenta que un Objeto, no es solo el código PHP, sino que es parte de un objeto toda la estructura/s de base de datos que lo soportan ( léase una o varias tablas ). Y que es menester del OBJETO saber como acceder a esas tablas, aunque el acceso lo haga directamente o desde otra clase. =)
Después, lo que acostumbro hacer en algunos casos, es tener un método load() (Si, mis métodos son en inglés, tengo que acostumbrarme a castellanizarlos) al que le paso el ID o nombre de usuario del usuario que quiero instanciar, entonces hago un :
<?
$u = new Usuario($Conn); // $Conn puede ser un objeto o un link hacia una BD
$u->load('webstudio');
?>
De esta manera ya cargo dentro del objeto todos los datos del usuario, y luego puedo accederlos a través de sus métodos :
<?
echo $u->usuario();
echo $u->ICQ();
$u->nombre("Pablo");
?>
Y luego, cuando ya trabajé con el Usuario, y quiero que los cambios se reflejen en la BD ( o sea, que obtengan persistencia ), tan solo hago:
<?
$u->save();
?>
Bueno, espero que esto te haya servido de algo, para que puedas acrecentar un poco más tus conocimientos sobre POO o sobre como algunos hacemos algunas cosas.
saludos.