Programa que realiza la implementacion de un ejemplo con Programacion orientada a objetos (Muy básico)
pascal:
program poo_animal;
uses crt;
{$R+}
type
generos = (macho,hembra);
tipos =(herbiboro,carnivoro,carronero);
Animal = object
sexo : generos;
nomb : string[20];
peso : real;
tipo : tipos;
edad : integer;
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string);
procedure mensaje; virtual;
procedure comer; virtual;
procedure caminar;virtual;
end;
Mamifero = object(Animal)
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
procedure mensaje; virtual;
procedure correr;virtual;
procedure cazar;virtual;
procedure saltar;virtual;
end;
Ave = Object(Animal)
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
procedure mensaje; virtual;
procedure volar;virtual;
end;
{ ********************* Implementacion ******************** }
Function evaluaTipo(in_tipo:tipos):string;
begin
if in_tipo=herbiboro then
evaluaTipo := 'herbÃÂÂboro';
if in_tipo=carnivoro then
evaluaTipo:='carnivoro';
if in_tipo=carronero then
evaluaTipo := 'carronero';
end;
Function evaluaGenero(in_Genero:generos):string;
begin
if in_Genero=Macho then
evaluaGenero := 'Macho'
else
evaluaGenero := 'Hembra';
end;
constructor Animal.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
writeln ('Animal creado; nombre: ', nomb);
end;
procedure Animal.mensaje;
begin
WriteLn(nomb, ' es un animal de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Animal.comer;
begin
WriteLn(nomb, ' esta comiendo');
end;
procedure Animal.caminar;
begin
WriteLn(nomb, ' esta caminando');
end;
constructor Mamifero.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
tipo := in_tipo;
writeln ('Mamifero creado; nombre: ', nomb);
end;
procedure Mamifero.mensaje;
begin
WriteLn(nomb, ' es un mamifero ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Mamifero.cazar;
begin
WriteLn(nomb, ' esta cazando');
end;
procedure Mamifero.correr;
begin
WriteLn(nomb, ' esta corriendo');
end;
procedure Mamifero.saltar;
begin
Write(nomb,' esta saltando');
end;
constructor Ave.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
tipo := in_tipo;
write ('Ave creada; nombre: ', nomb);
end;
procedure Ave.mensaje;
begin
WriteLn(nomb, ' es una ave ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Ave.volar;
begin
WriteLn(nomb, ' esta volando');
end;
procedure alerta(VAR especie : animal);
begin
especie.Mensaje;
end;
{ ************************ principal ************************** }
var Delfin : Animal;
Tigre : Mamifero;
Canario : Ave;
begin
clrscr;
Delfin.Nacer(macho,50.2,3,'Delfin');
Tigre.Nacer(macho, 50.2,3,'Tigre',carnivoro);
Canario.Nacer(hembra, 0.25,1,'Canario',herbiboro);
WriteLn;
WriteLn;
alerta(Delfin);
Delfin.comer;
alerta(Tigre);
Tigre.cazar;
alerta(Canario);
Canario.volar;
readkey;
end.
program poo_animal;
uses crt;
{$R+}
type
generos = (macho,hembra);
tipos =(herbiboro,carnivoro,carronero);
Animal = object
sexo : generos;
nomb : string[20];
peso : real;
tipo : tipos;
edad : integer;
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string);
procedure mensaje; virtual;
procedure comer; virtual;
procedure caminar;virtual;
end;
Mamifero = object(Animal)
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
procedure mensaje; virtual;
procedure correr;virtual;
procedure cazar;virtual;
procedure saltar;virtual;
end;
Ave = Object(Animal)
constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
procedure mensaje; virtual;
procedure volar;virtual;
end;
{ ********************* Implementacion ******************** }
Function evaluaTipo(in_tipo:tipos):string;
begin
if in_tipo=herbiboro then
evaluaTipo := 'herbÃÂÂboro';
if in_tipo=carnivoro then
evaluaTipo:='carnivoro';
if in_tipo=carronero then
evaluaTipo := 'carronero';
end;
Function evaluaGenero(in_Genero:generos):string;
begin
if in_Genero=Macho then
evaluaGenero := 'Macho'
else
evaluaGenero := 'Hembra';
end;
constructor Animal.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
writeln ('Animal creado; nombre: ', nomb);
end;
procedure Animal.mensaje;
begin
WriteLn(nomb, ' es un animal de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Animal.comer;
begin
WriteLn(nomb, ' esta comiendo');
end;
procedure Animal.caminar;
begin
WriteLn(nomb, ' esta caminando');
end;
constructor Mamifero.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
tipo := in_tipo;
writeln ('Mamifero creado; nombre: ', nomb);
end;
procedure Mamifero.mensaje;
begin
WriteLn(nomb, ' es un mamifero ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Mamifero.cazar;
begin
WriteLn(nomb, ' esta cazando');
end;
procedure Mamifero.correr;
begin
WriteLn(nomb, ' esta corriendo');
end;
procedure Mamifero.saltar;
begin
Write(nomb,' esta saltando');
end;
constructor Ave.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos);
begin
sexo := in_sexo;
nomb := in_nombre;
peso := In_peso;
edad := in_edad;
tipo := in_tipo;
write ('Ave creada; nombre: ', nomb);
end;
procedure Ave.mensaje;
begin
WriteLn(nomb, ' es una ave ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.');
end;
procedure Ave.volar;
begin
WriteLn(nomb, ' esta volando');
end;
procedure alerta(VAR especie : animal);
begin
especie.Mensaje;
end;
{ ************************ principal ************************** }
var Delfin : Animal;
Tigre : Mamifero;
Canario : Ave;
begin
clrscr;
Delfin.Nacer(macho,50.2,3,'Delfin');
Tigre.Nacer(macho, 50.2,3,'Tigre',carnivoro);
Canario.Nacer(hembra, 0.25,1,'Canario',herbiboro);
WriteLn;
WriteLn;
alerta(Delfin);
Delfin.comer;
alerta(Tigre);
Tigre.cazar;
alerta(Canario);
Canario.volar;
readkey;
end.