Hola amigos tengo una duda, ultimamente me he puesto a indigar en la programacion orientada a objetos practicando con delphi y con C#, sin embargo encontré algo en delphi que me parecio curioso.
Cuando yo declaro en una clase algún dato de tipo privado, al instanciar esta clase me doy cuenta que tengo acceso todavia a la variable como si fuese publica. Este comportamiento no pasa con C#. Hasta donde yo tengo entendido la declaracion de las variables privadas son de uso exclusivo para la clase donde se encuentra definida.
Anexo un ejemplo:
Código:
Tperro = class(tobject)
private
nombre : string;
public
raza : string;
end;
.....
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
perro : Tperro;
begin
perro := Tperro.Create;
// Deberia realmente tener acceso a nombre
// que es privado????
perro.nombre := 'Firu';
end;
Entiendo que si yo creo otra clase que herede de Tperro, la instancia de la clase hijo no va a acceder a las variables privadas del padre.
Pero creo yo que en el ejemplo que coloque se corre el riesgo de que de repente alguien me instancie a la clase TPerro y use la variable "nombre" la cual no me interesa que usen.
Gracias por sus comentarios!