You are on page 1of 12

Repblica Bolivariana de Venezuela Aldea Universitaria Fray Pedro de Agreda PNFSI http !!

aldea"raypedrodeagreda#$ordpress#co% &laborado por Pro"# &l'as (isneros cisneros#elias)g%ail#co% *+!,*!-.


Introducci/n a la Progra%aci/n 0rientada a 0b1etos en (22

(reative Usted es libre de * Copiar, distribuir y comunicar pblicamente la obra . * Hacer obras derivadas . Ba1o las condiciones siguientes Reconocimiento. Debe reconocer los crditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que ace de su obra!. "o comercial. "o puede utili#ar esta obra para fines comerciales.

Compartir ba$o la misma licencia. %i altera o transforma esta obra, o genera una obra derivada, s&lo puede distribuir la obra generada ba$o una licencia idntica a sta.

'(')

Progra%aci/n 0rientada a 0b1etos *a +rogramaci&n ,rientada a ,b$etos (+,,! no es un lengua$e de programaci&n, es una paradigma de programaci&n que surgi& por la necesidad de disminuir la comple$idad al momento de la construcci&n de programas para computadoras. Hoy en d-a este paradigma est. soportado en mayor o menor medida en todos los lengua$es tradicionales (C se a convertido en C//, +ascal en Delp i, ! , 0ava, + yton, +H+, etc. Paradig%a 1n paradigma es un con$unto de reglas que 2rigen2 una determinada disciplina. 3stas reglas se asumen normalmente como verdades incuestionables. Cuando un paradigma ya no puede satisfacer las necesidades de una ciencia (por e$emplo, ante nuevos descubrimientos que invalidan conocimientos previos!, es sucedido por otro. %e dice que un cambio de paradigma es algo dram.tico para la ciencia, ya que stas aparecen como estables y maduras, sin embargo en ciertas condiciones o situaciones aparecen enfoques diferentes que dan soluci&n, e4plicaci&n, sentido de forma v.lida a determinados temas . 3n el campo de la programaci&n, no es muy diferente, un paradigma es un con$unto de conceptos que gu-a el proceso an.lisis, dise5o y construcci&n de un programa. (onceptos generales *a +,, es la evoluci&n natural de la programaci&n estructurada, por lo tanto es importante para las personas que tiene algn conocimiento de programaci&n de$ar a un lado algunas ideas preconcebidas acerca de c&mo debe dise5arse un programa, la +,, tiene una forma diferente abordar los problemas y sus soluciones. Evolucin de los lenguajes de programacin 1na de los ob$etivos de los lengua$es de programaci&n es acer de la construcci&n de programas para computadores sea lo m.s simple (reducir la comple$idad!, fle4ible y portable posible. Desde el punto de vista de algunos autores la evoluci&n en los lengua$es, a venido impulsada por dos motores bien distintos6 *os avances tecnol&gicos *os avances conceptuales (de planteamiento! *os avances en cuanto a enfoque de la programaci&n

Evolucin en cuanto a los avances tecnolgicos Cronol&gicamente el primer avance importante de los lengua$es de programaci&n vino con la aparici&n de los lengua$es ensambladores, antes de esta etapa se utili#aban c&digo binario para indicar al computador las instrucciones que deb-an reali#ar, a medida que se incremento el tama5o y la comple$idad de los programas apareci& el 3nsamblador, este lengua$e se le llam& tambin lengua$e de 2ba$o nivel2, ya que se allan estrec amente ligados a la forma de traba$o de la m.quina para la cual se est. aciendo el programa. Hoy en d-a este tipo de programaci&n se utili#a en .mbitos muy espec-ficos y por lo tanto no es lo abitual para la mayor-a de desarrollos de aplicaciones. 3l problema de los lengua$es ensambladores es que se allan fuertemente relacionados con la m.quina o ard7are, un programa escrito en lengua$e ensamblador solo podr. ser e$ecutado en la m.quina donde fue dise5ado. 8 medida que los programas siguieron creciendo se dieron otros pasos y con estos la aparici&n de los lengua$es de alto nivel. 3l proceso de desarrollo de una aplicaci&n con un lengua$e de alto nivel, adem.s de reducir el tema
)(')

de la comple$idad, es muc o m.s r.pido de escribir, por tanto, resulta m.s f.cil detectar y corregir errores. 3sto se debe principalmente a dos factores6 por un lado, cada instrucci&n escrita en lengua$e de alto nivel puede equivaler a varias decenas e incluso cientos de instrucciones en ensamblador9 por otra parte, la sinta4is de las instrucciones y las palabras reservadas utili#adas se parecen al lengua$e natural ( en el caso del ingls!. ,tro aspecto importante es el tema del rendimiento, los programas escritos con lengua$es de alto nivel reali#an los mismos procesos que los reali#ados con lengua$es de ba$o nivel pero de un modo m.s lento, sin embargo este tema no es demasiado problema observando la evoluci&n en la potencia de c.lculo de las m.quinas en los ltimos a5os. Evolucin en cuanto a Conceptualizacin 3l primer paso en paradigma de programaci&n vino con la +rogramaci&n 3structurada tambin llamado programaci&n procedural. 1n paradigma estructurado tiene como ob$etivo lograr una definici&n completa del sistema en trminos de funciones, este paradigma sugiere que el an.lisis y dise5o que se agan, sean un con$unto de procedimientos descendentes, esto quiere decir que se reali#a una descomposici&n funcional de procesos en otros procesos de menor nivel. *a programaci&n estructurada es una forma de escribir programas en funci&n tres estructuras6 secuencia, selecci&n e iteraci&n, tambin se utili#an funciones o procedimientos que incorporan modularidad y reutili#aci&n en el c&digo fuente. +or e$emplo, la programaci&n en lengua$e ensamblador es lineal, es decir, las instrucciones se e$ecutan en el mismo orden en que son escritas. %in embargo en lengua$e que es otro lengua$e basado en paradigma de programaci&n estructurado se puede alterar el orden de e$ecuci&n aciendo saltos desde una instrucci&n a otro lugar del programa mediante el uso de funciones o procedimientos. *a principal desventa$a del paradigma de programaci&n estructurado es que se obtiene un nico bloque de programa, que cuando se ace demasiado grande puede resultar problem.tico su mane$o9 esto se resuelve empleando la programaci&n modular, definiendo m&dulos interdependientes programados y compilados por separado (en realidad esto no es necesario, pero es recomendable para su mantenimiento y funcionalidad!. 8 continuaci&n se muestra un gr.fico que e$emplifica de forma b.sica el flu$o de traba$o segn el paradigma de programaci&n que se est empleando, lo m.s importante a resaltar en el gr.fico es la interacciones que se llevan a cabo en el +aradigma de +rogramaci&n 3structurado (,+! el cual se observa rigide# en la e$ecuci&n de las instrucciones (:nstrucci&n 8,:nstrucci&n ; e :nstrucci&n C! , por otro lado, en el +aradigma ,rientado a ,b$eto se observa la interacci&n en los distintos ob$etos para resolver el problema.

<(')

Progra%aci/n 0rientada a 0b1etos 3P004 3s un paradigma de programaci&n que usa ob$etos y sus interacciones para dise5ar aplicaciones y programas. 3st. basado en varias principios, incluyendo erencia, modularidad, polimorfismo y encapsulamiento. %u uso se populari#& a principios de la dcada de '==>, como evoluci&n de la programaci&n estructurada, actualmente son muc os los lengua$es de programaci&n que soportan la orientaci&n a ob$etos. *o que no significa que al utili#ar un lengua$e que soporte +,, estamos aciendo uso de la misma, es necesario enfocar el dise5o del programa al enfoque orientado a ob$etos. *a +,, permite reali#ar programas mediante la uni&n de elementos m.s simples que pueden ser dise5ados y comprobados de manera independiente del programa que va a usarlos, muc os de estos elementos podr.n ser reutili#ados en otros programas. *a +,, ofrece mayor dominio sobre el programa, esto es posible principalmente porque los ob$etos impiden me#clar sus datos con otros mtodos distintos a los suyos. *a programaci&n orientada a ob$etos e4presa un programa como un con$unto de estos ob$etos, que colaboran entre ellos para reali#ar tareas. 3sto permite acer los programas y m&dulos m.s f.ciles de escribir, mantener, reutili#ar y volver a utili#ar. De aquella forma, un ob$eto contiene toda la informaci&n que permite definirlo e identificarlo frente a otros ob$etos pertenecientes a otras clases e incluso frente a ob$etos de una misma clase, al poder tener valores bien diferenciados en sus atributos. 8 su ve#, los ob$etos disponen de mecanismos de interacci&n llamados mtodos que favorecen la comunicaci&n entre ellos. 3sta comunicaci&n favorece a su ve# el
?(')

cambio de estado en los propios ob$etos. 3sta caracter-stica lleva a tratarlos como unidades indivisibles, en las que no se separan ni deben separarse el estado y el comportamiento. *os mtodos (comportamiento! y atributos (estado! est.n estrec amente relacionados por la propiedad de con$unto. 3sta propiedad destaca que una clase requiere de mtodos para poder tratar los atributos con los que cuenta. 3sto difiere de la programaci&n estructurada tradicional, en la que los datos y los procedimientos est.n separados y sin relaci&n, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. (aracter'sticas de la P00 Abstracci/n6 3s un proceso mental que tiene en cuenta dos aspectos6 identificar lo relevante del ob$eto de estudio y desec ar aquello considerado irrelevante. 3n el proceso de abstracci&n se identifican las caracter-sticas esenciales de un ob$eto su comportamiento. Cada ob$eto en el sistema sirve como modelo de un 2agente2 abstracto que puede reali#ar traba$o, informar y cambiar su estado, y 2comunicarse2 con otros ob$etos. &ncapsula%iento6 %ignifica reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad. 3sto permite aumentar la co esi&n de los componentes del sistema. 8dicionalmente el concepto de 3ncapsulamiento tiene relaci&n con el concepto de ocultaci&n de los datos, mas no significan lo mismo. Principio de ocultaci/n Cada ob$eto est. aislado del e4terior, es un m&dulo natural, y cada tipo de ob$eto e4pone una interfa# a otros ob$etos que especifica c&mo pueden interactuar con los ob$etos de la clase. 3l aislamiento protege a las propiedades de un ob$eto contra su modificaci&n por quien no tenga derec o a acceder a ellas, solamente los propios mtodos internos del ob$eto pueden acceder a su estado. 3sto asegura que otros ob$etos no pueden cambiar el estado interno de un ob$eto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Poli%or"is%o6 comportamientos diferentes, asociados a ob$etos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utili#ar. el comportamiento correspondiente al ob$eto que se est usando. , dic o de otro modo, las referencias y las colecciones de ob$etos pueden contener ob$etos de diferentes tipos, y la invocaci&n de un comportamiento en una referencia producir. el comportamiento correcto para el tipo real del ob$eto referenciado. Cuando esto ocurre en 2tiempo de e$ecuci&n2, esta ltima caracter-stica se llama asignaci&n tard-a o asignaci&n din.mica. 5erencia6 las clases no est.n aisladas, sino que se relacionan entre s-, formando una $erarqu-a de clasificaci&n. *os ob$etos eredan las propiedades y el comportamiento de todas las clases a las que pertenecen. *a erencia organi#a y facilita el polimorfismo y el encapsulamiento permitiendo a los ob$etos ser definidos y creados como tipos especiali#ados de ob$etos pree4istentes. 3stos pueden compartir (y e4tender! su comportamiento sin tener que volver a implementarlo. 3sto suele acerse abitualmente agrupando los ob$etos en clases y estas en .rboles o enre$ados que refle$an un comportamiento comn. (onceptos b6sicos de la P00 3s importante estudiar los conceptos de Clase, ,b$eto, Herencia, 3ncapsulaci&n y +olimorfismo. 3stas son las ideas b.sicas que todo aquel que traba$a en +,, debe comprender y mane$ar constantemente.
@(')

(lase *as clases constituyen la base de la programaci&n orientada a ob$etos, es la unidad fundamental de encapsulamiento, m.s adelante se ver. que la clase se utili#a para crear ob$etos. 8 continuaci&n algunos conceptos para ayudar a aclarar la idea6 1na clase es una representaci&n real o abstracta del mundo real, es el con$unto de definiciones de atributos y comportamiento de un tipo de ob$eto concreto. 1na clase contiene una completa y detallada descripci&n de la informaci&n y los mtodos que contendr. cada ob$eto de esa clase. *as clases se pueden ver como una generali#aci&n de una categor-a, son tipos de datos definidos por el programador y pueden ser utili#ados de igual manera que los tipos de datos propios del C//, tales como int o float, sin embargo es una estructura de datos con comportamiento el cual lo obtienen a travs de sus mtodos. Cada clase contiene 6 A 8tributos (datos miembro o campos!, los cuales especifican las propiedades de los ob$etos, e4presan el estado del ob$eto. A Btodos (funciones miembro o mtodos!, mediante los cuales se modela su comportamiento y las acciones que puede reali#ar. %e utili#an en el intercambio de mensa$es o comunicaci&n con otros ob$etos. Definici&n en C// *as clases se crean utili#ando la palabra reservada class. *a sinta4is de la declaraci&n de una clases es la siguiente6 class nombreCclaseD (( mtodos y variables privadas public6 (( mtodos y variables publicas E9 *as variables y mtodos que se declaran dentro de la declaraci&n de una clase se llaman miembros de la clase. +or defecto, todas las variables y mtodos de las clases en C// son privadas con respecto a dic a clase, es decir que solo pueden ser accedidas por otros miembros de esa misma clase. +ara declarar miembros pblicos se utili#a la palabra reservada public seguida de dos puntos (6!, entonces todos los atributos y mtodos que son declarados despus del especificador public ser.n accedidos por cualquier clase del programa. 8 continuaci&n la declaraci&n de una clase sencilla6 class +ersonaD (( 8tributos privados respecto a la clase +ersona int edad9 public6 void set3dad(int num!D edad F num9 E int get3dad(!D
G(')

return edad9 E E9 3sta clase tiene un atributo privado llamado edad y dos funciones pblicas, set3dad(! y get3dad. 3ntonces como edad es un atributo privado no es accesible a ningn c&digo que est fuera de la clase +ersona, sin embargo como set3dad(! y get3dad(! son mtodos miembros estos si pueden acceder al atributo edad. 0b1etos 3s cualquier cosa real o abstracta capa# de almacenar datos y que posee mtodos para su manipulaci&n. 3s una entidad provista de un con$unto de atributos (datos! y de comportamiento (mtodos! los mismos que consecuentemente reaccionan a eventos, estos atributos y mtodos previamente an sido definidos en una clase. *os ob$etos son instancia, ocurrencias, ec os particulares de una clase. +or lo tanto la declaraci&n de una clase es una abstracci&n l&gica que define un nuevo tipo de datos. *a declaraci&n de un ob$eto crea un ente f-sico de ese tipo, desde el punto de vista tcnico, al crearse un ob$eto este ocupa espacio en la memoria, pero la definici&n, es decir una clase no ocupa espacio en memoria. *a declaraci&n de un ob$eto se reali#a de la siguiente manera6 +ersona per', per)9 1na ve# que a sido creado un ob$eto de una clase, se puede referenciar sus miembros pblicos utili#ando el operador punto, por e$emplo6 per'.set3dad()H!9 (( 3stablece en )H el atributo edad del ob$eto per' per).set3dad('?!9 (( 3stablece en '? el atributo edad del ob$eto per) Cada ob$eto de una clase tiene su propia copia de todos los atributos que est.n declarados dentro de la clase. Propiedad o atributo Contenedor de un tipo de datos asociados a un ob$eto (o a una clase de ob$etos!, que ace los datos visibles desde fuera del ob$eto y esto se define como sus caracter-sticas predeterminadas, y cuyo valor puede ser alterado por la e$ecuci&n de algn mtodo. 8lgunos e$emplos class CasaD int cantCventanas9 int metrosCcuadrados9 public float precio9 int cantCcuartos9 void set+recio( float valor! D precio F valor9
H(')

E ... E int main(!D Casa miCasa9 miCasa.cantCventanasF@9 miCasa.set+recio(?@>>>!9 return >9 E 78todo 8lgoritmo asociado a un ob$eto (o a una clase de ob$etos!, cuya e$ecuci&n se desencadena tras la recepci&n de un 2mensa$e2. Desde el punto de vista del comportamiento, es lo que el ob$eto puede acer. 1n mtodo puede producir un cambio en las propiedades del ob$eto, o la generaci&n de un 2evento2 con un nuevo mensa$e para otro ob$eto del sistema. *os mtodos especifican la forma en que se controlan los datos de un ob$eto. *os mtodos en un tipo de ob$eto s&lo acen referencia a la estructura de datos de ese tipo de ob$eto. "o deben tener acceso directo a las estructuras de datos de otros ob$etos. +ara utili#ar la estructura de datos de otro ob$eto, deben enviar un mensa$e a ste. 3l tipo de ob$eto empaca $untos los tipos de datos y su comportamiento. tipoCretorno nombreCmetodo (lista de parametros! D ((:mplementaci&n E %uponiendo el e$emplo de la clase Casa, el mtodo set+recio se debe referenciar de la siguiente manera, miCasa.set+recio(?@>>>!9 , entonces se debe seguir lo siguiente6 nombreCob$eto.metodo(!. Visibilidad de los atributos y %8todos 3 7odi"icadores de Acceso4 1na mtodo miembro puede acceder de forma directa a los atributos miembros o a otras mtodos miembros sin necesidad de cualificarlas con el nombre del ob$eto. Haciendo referencia a la clase Casa definida anteriormente, el mtodo set+recio ace referencia directamente al atributo precio, es decir que dentro de la implementaci&n del mtodo set+recio se manipula el atributo sin acer referencia al nombre del ob$eto, la ra#&n por la cual es accedido directamente es porque el ob$eto sobre el que opera el mtodo set+recio ya es conocido. %iguiendo la idea, fuera de Casa, el mtodo set+recio solamente puede ser accedido con$untamente con un ob$eto. +or e$emplo en la funci&n main(! la l-nea ser-a miCasa.set+recio est. estableciendo el valor del atributo precio del ob$eto miCasa. 34isten sentencias para indicar que atributos y mtodos miembros son accesibles desde fuera de la c.psula del ob$eto. Bodificador de acceso public6 Define los atributos y mtodos que ser.n accedidos por cualquier ob$eto dentro o fuera de la definici&n de la clase , es decir, todos los atributos y mtodos definidos despus de la instrucci&n public ser.n de acceso pblico
I(')

para cualquier ob$eto e4terno. Bodificador de acceso private Define los atributos y mtodos que est.n restringidos, es decir con acceso privado para ob$etos e4ternos, solo los mtodos de la clase tienen acceso a estos atributos y mtodos que ayan sido definidos luego de la instrucci&n private .8l intentar acceder a un atributo o mtodo privado desde fuera del ob$eto obtendremos un error en tiempo de compilaci&n indicando que el atributo o mtodo no es accesible.

+ara e$emplificar estos trminos revise la siguiente clase, la cual es una abstracci&n de una persona. Jranscriba este programa, guardelo con el nombre persona.cpp, para compilar utilice g// persona.cpp Ko persona. +ara e$ecutar .(persona '. ). <. ?. @. G. H. I. =. '>. ''. '). '<. '?. '@. 'G. 'H. 'I. '=. )>. )'. )). )<. )?. )@. )G. )H. )I. )=. <>. <'. <). LincludeMiostreamN LincludeMstring. N using namespace std9 class +ersonaD (( 8tributos privados respecto a la clase +ersona int edad9 string nombre9 (( Btodos pblicos respecto a la clase +ersona public6 void set3dad(int num!D edad F num9 E int get3dad(!D return edad9 E void set"ombre(string val!D nombre F val9 E string get"ombre(!D return nombre9 E void imprimirDatos(!D coutMM2"ombre6 2MMnombreMMendl9 coutMM23dad6 2MMedadMMendl9 E E9 (* +rograma +rincipal*( int main(!D +ersona per',per)9 (( Declaraci&n de dos ob$etos de la Clase +ersona per'.set"ombre(23lias2!9 (( 3stablece en 3lias el atributo nombre del ob$eto per' per'.set3dad()H!9 (( 3stablece en )H el atributo edad del ob$eto per'
=(')

<<. per'.imprimirDatos(!9 <?. <@. per).set"ombre(2*igia O2!9 (( 3stablece en *igia O el atributo nombre del ob$eto per) <G. per).set3dad('?!9 (( 3stablece en '? el atributo edad del ob$eto per) <H. per).imprimirDatos(!9 <I. <=. return >9 ?>. E 7ensa1es a ob1etos 3sta e4presi&n est. ligada directamente a los mtodos, y no es m.s que otra forma de referirise a la interacci&n entre ob$etos mediante la utili#aci&n de sus mtodos. +ara que un ob$eto aga algo, se le env-a una solicitud, esta ace que se produ#ca una operaci&n. *a operaci&n e$ecuta el mtodo apropiado y, de manera opcional, produce una respuesta. 3l mensa$e que constituye la solicitud contiene el nombre del ob$eto, el nombre de una operaci&n y, a veces, un grupo de par.metros. +or lo tanto es una una comunicaci&n dirigida a un ob$eto, que le ordena que e$ecute uno de sus mtodos con ciertos par.metros asociados al evento que lo gener&. *a estructura de un mensa$e es6 3l ob$eto al cual se le env-a el mensa$e. 3l mtodo que se desea e$ecutar. Cualquier otra informaci&n que necesite el mtodo para poder actuar (par.metros!. *a forma de enviar un mensa$e a un ob$eto es la siguiente6 ,b$eto.metodo(par.metros!9 &1e%plos %uponga una clase llamada 8utom&vil, los atributos y mtodos ser-an los siguientes6 Atributos Barca Color Bodelo +eso Ca$a Cilindros del motor &1ercicios Definir atributos y mtodos para las siguientes categor-as o clases6 9ibro 8tributos6 "ombre, resumen, genero, cantidad de p.ginas, autor, a5o de escritura, a5o de impresi&n. Btodos6 definir"ombre, obtener"ombre, obtenerResumen, obtener8utor, obtenerCantidad+aginas.
'>(')

78todos 3ncender 8pagar 8van#ar Detener Pirar :#quierda Pirar Derec a

Asignatura 8tributos6 "ombre, cantidad de crditos, contenidos, cantidad de oras semanales, trimestre. Btodos6 definir"ombre , obtener"ombre, definirContenidos, obtenerContenidos. Ani%al 8tributos6 3specie, reino, nombre comn, nombre cient-fico, mtodo de reproducci&n. Btodos6 "acer, morir, reproducirse, definir"ombreComun, obtener"ombreComun, obtenerReino. (iudad 8tributos6 "ombre, cantidad de abitantes, area en metros cuadrados, estado, ciudades vecinas. Btodos6 definir"ombre, obtener"ombre, obtener3stado, obtenerCiudadesOecinas. Persona 8tributos6 "ombre, 8pellido, peso, tama5o, nacionalidad, se4o, edad. Btodos6 definir"ombre, obtener"ombre, caminar, dormir, comer. (elular 8tributos6 "ombre, marca, tecnolog-a, capacidad de memoria interna, tama5o agenda. Btodo6 definir"ombre, obtener"ombre, llamar, colgar llamada, tener llamada en espera, definir bu#&n de vo#. Bo%billo 8tributos6 Capacidad , luminosidad, tiempo de vida, tama5o. Btodos6 definirCapacidad, obtenerCapacidad, encender, apagar. &1ercicios propuestos Construya un programa que realice lo siguiente6 Codifique la clase 8signatura, *ibro, 8nimal, Ciudad, +ersona, Celular, ;ombillo.

''(')

Bibliogra"'a# Herbert %c ildt, C// para programadores. %erie BcPra7 Hill de :nform.tica. Badrid, '==G. :ntroducci&n a la ,,+. Prupo 3idos 8prenda C// como si estuviera en primero. 0avier Parc-a de 0al&n, 0os :gnacio Rodr-gue#, 0os Bar-a %arriegui, 8lfonso ;ra#.le# Clases en C// . 1niversidad de Carabobo .Qacultad 34perimental de Ciencias y Jecnolog-a . 8lgoritmos y +rogramaci&n :: . 3nero de )>>@ . Concepto de +aradigma. ,btenido de ttp6((netgocios.bligoo.com(content(vie7(<HII) Concepto de +aradigma. ttp6((definicion.de(paradigma(

+rogramaci&n 3structurada, ttp6((es.7iRipedia.org(7iRi(+rogramaciSC<S;<nCestructurada +rogramaci&n ,rientada a ,b$etos. ttp6((es.7iRipedia.org(7iRi(+rogramaciSC<S;<nCorientadaCaCob$etos +rincipios de +rogramaci&n ,rientada a ,b$etos. 8lberto Duque.

')(')

You might also like