Hola edorantes,
Las clases por si mismas no cuentan con herramientas para almacenar y poder recuperar los datos. Ten en cuenta que los datos en sus atributos sólo estarán disponibles mientras exista un objeto o instancia de la misma en memoria. En el momento en que liberes dicho objeto pierdes toda información.
Si lo buscas es que estas clases lean y almacenen datos de una tabla de base de datos pues ya las cosas se complican un poco. Y hay varias alternativas de como encararlo.
La manera más fácil y directa de hacerlo es que dicha clase cuente con unos hipotéticos métodos que podríamos llamar como LeerDeBaseDatos, GuardarEnBaseDatos. Éstos se comunicarían con los componentes adecuados y ejecutarían la instrucción adecuada. Ante una lectura el proceso se resume en algo como:
procedure TMiClase.LeerDeBaseDatos;
begin
// conectarse a la base de datos
// abrir el xxxTable o bien ejecutar una consulta SELECT
// Pasamos los datos al objeto:
FAtributo := MiDataSet.FieldByName('NombreCampo').AsInteger; // o el AsTipo adecuado
end;
Para guardar se procede de forma inversa:
MiDataSet.FieldByName('NombreAtributo').AsTipo := FAtributo;
Y ejecutar una instrucción INSERT si el data set es un xxxQuery o si se trata de un xxxTable se debe de ejecutar previamente un .Append o .Insert para ponerlo en modo de "inserción" y finalmente se confirma la acción con el .Post.
Quisiera que por favot nos indiques en que te trabaste. No me queda bien en claro a lo que comentas sobre como pasarle datos. Como he dicho antes, para usar la clase debes crear una instancia de la misma. Para pasarle datos hay variadas formas:
1) Por y hacia los atributos de forma directa:
TMiClase = class
public
FAtributo1: integer;
end;
...
var
MiObjeto: TMiClase;
...
begin
MiObjeto := TMiClase.Create;
MiOjeto.Atributo1 := 5;
end;
Para leer basta con hacer:
variable := MiObjeto.Atributo1;
2) Mediante métodos setter y getter:
Basta con aplicar el ejemplo que he dado en mi post anterior:
MiObjeto.SetAtributo(5); // pasarle datos
variable := MiObjeto.GetAtributo; // leer
3) Combinando ambas, usando propiedades:
TMiClase = class
private
FAtributo: integer;
procedure SetAtributo(Value: integer);
function GetAtributo: integer;
public
property Atributo: integer read GetAtributo write SetAtributo;
end;
Luego basta con:
MiObjeto.Atributo := 5; // pasarle datos
variable := MiObjeto.Atributo; // leer
Las propiedades se parecen a los atributos, lo que las diferencia de estos es que leer y guardar con las propiedades implica un paso de seguridad intermedio gracias a esos métodos privados. En la implementación de estos métodos uno puede hacer las verificaciones y controles que requiera para garantizar de que un setter sobre el atributo no almacene un valor incorrecto (como por ejemplo: edad negativa) y un getter sobre el mismo atributo lea de forma segura el dato correcto.
Existe también casos en los que una clase no requiera disponer de un atributo para almacenar un dato, sino más bien que la información para realizar determinada acción venga por parámetro:
TMiClase = class
public
HacerAlgo(ConEsto: integer);
end;
En el ejemplo TMiClase cuenta con un método llamado HacerAlgo que recibe un parámetro. En este caso como no se tiene interés de que la clase cuente con el atributo FConEsto, necesita que el dato sea pasado por esta vía.
Se más concreto en tus dudas. No logro vislumbrar hasta donde llegan tus conocimientos y dudas sobre POO. Repito: no puedo estar exponiendo toda una clase (que en una universidad demora un semestre)... hay mucho material al respecto, y tengo la impresión de que en parte tus problemas ya no son exclusivamente sobre como es que se lleva la OO en Delphi sino también sobre el propio paradigma. Date tiempo para ir asimilando lo que vas leyendo y los ejemplos de código que hay en los manuales que he dejado son funcionales y no hay error.
Saludos,