Sunteți pe pagina 1din 6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula

PginadeInicio ArtculoProgramacinOrientadaaObjetos

Programacion
orientadaaobjetos

Nombre:

POO(ProgramacionOrientadaaobjetos)
Compartir

18

Email:

Comentario:

CursoonlinegratuitoPOOyJavaClickAqu
IralapginaprincipaldePOO
ProgramacinOrientadaaObjetos
HistoriadelaProgramacin
ElObjeto
LaClase
Abstraccin
Herencia
Polimorfismo
VentajasPOO
LenguajesOrientadosaObjetos

Profesor:ngelRoldn

LenguajedeProgramacinJava

IntroducinaJava
EncapsulamientoenJava
Mtodomain
FlujosdeControlenJava
DeclaracindeunaclaseenJava
ControldeAccesoaMiembrosdeClase
This,enClasesdeJava
ClasesenJavadeUtilidad
Mtodosdeclase
OrigendelosPatronesdeDiseo
ElPatrnProxy
ElPatrnBridge(Puente)
ElPatrnIterador(Iterator)
Conceptosdeprogramacin
PalabrasReservadasJava

Master
MasterJava(POOJ2SEJ2EE)

TecnologaJava
JavaBsico
JavaparaInternet(J2EE)
JavaAvanzado
JavayXML
LenguajeJava(J2SE)

Programacin
Programacinorientadaaobjetos

JavayAplicacionesWeb

IralaportadadeCiberaula
EstructuradeDatosenJava
PilasenJava
ListasenJava
ColasenJava
rbolesenJava
Exploracinderboles
GrafosenJava
AlgoritmosVoraces
Backtracking
ConceptosBsicosde
Programacin

Compartir
18
Twittear
Share

Recomendar

87

Logica
TabladeVerdad
Propiedadesen
Programacin
ElPseudolenguajeParteI
ElPseudolenguajeParteII
DiagramadeFlujoI
DiagramadeFlujoII
UML
DivideyVencers
Operadores
OperadoresAritmticos
OperadoresdeAsignacin
OperadoresRelacionales
OperadoresLogicos

IntroduccinalasAplicacionesWeb
TecnologaServlet
TecnologaJSP
JavaBeansEnterprise

programacionorientadaaobjetos
ndice
1. Introduccin
2. Tecnologaorientadaaobjetos
1. UnaPerspectivaHistrica
2. Culessonlasventajasdeunlenguajeorientadoaobjetos?
3. Elmodeloorientadoaobjetos
1. objetos
2. clases
3. Herencia
4. Envodemensajes
4. CaractersticasasociadasalaPOO
1. Abstraccin
2. Encapsulamiento
3. Ocultamiento
4. Modularidad
5. Polimorfismo
5. Lenguajesdeprogramacinorientadoaobjetos
6. Anlisisydiseoorientadoaobjetos
7. Resumen

Introduccin
http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

1/6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula


La programacion orientada a objetos (POO, u OOP segn sus siglas en ingls) es un
paradigma de programacin que usa objetos en sus interacciones, para disear aplicaciones y
programasinformticos.
Est basada en varias tcnicas, incluyendo herencia, cohesin, abstraccin, polimorfismo,
acoplamientoyencapsulamiento.Suusosepopularizaprincipiosdeladcadade1990.Enla
actualidad,existeunagranvariedaddelenguajesdeprogramacinquesoportanlaorientacina
objetos.

Tecnologaorientadaaobjetos
Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a los lenguajes de
programacin,ademssevieneaplicandoenelanlisisydiseoconmuchoxito,aligualqueen
lasbasesdedatos.Esqueparahacerunabuenaprogramacionorientadaaobjetos hay que
desarrollar todo el sistema aplicando esta tecnologa, de ah la importancia del anlisis y el
diseoorientadoaobjetos.
Laprogramacionorientadaaobjetosesunadelasformasmspopularesdeprogramaryviene
teniendo gran acogida en el desarrollo de proyectos de software desde los ltimos aos. Esta
acogida se debe a sus grandes capacidades y ventajas frente a las antiguas formas de
programar.

UnaPerspectivaHistrica
Tradicionalmente,laprogramacin fue hecha en una manera secuencial o lineal, es decir una
seriedepasosconsecutivosconestructurasconsecutivasybifurcaciones.

Los lenguajes basados en esta forma de programacin ofrecan ventajas al principio, pero el
problema ocurre cuando los sistemas se vuelven complejos. Estos programas escritos al estilo
espaguettinoofrecenflexibilidadyelmantenerunagrancantidaddelneasdecdigoenslo
bloquesevuelveunatareacomplicada.
Frenteaestadificultadaparecieronloslenguajesbasadosenlaprogramacinestructurada. La
idea principal de esta forma de programacin es separar las partes complejas del programa en
mdulososegmentosqueseanejecutadosconformeserequieran.Deestamaneratenemosun
diseomodular,compuestopormdulosindependientesquepuedancomunicarseentres.Poco
a poco este estilo de programacin fue reemplazando al estilo espaguetti impuesto por la
programacinlineal.
Entonces,vemosquelaevolucinquesefuedandoenlaprogramacinseorientabasiempreair
descomponiendo ms el programa. Este tipo de descomposicin conduce directamente a la
programacionorientadaaobjetos.
Pues la creciente tendencia de crear programas cada vez ms grandes y complejos llev a los
desarrolladoresacrearunanuevaformadeprogramarquelespermitacrearsistemasdeniveles
empresarialesyconreglasdenegociosmuycomplejas.Paraestasnecesidadesyanobastabala
programacin estructurada ni mucho menos la programacin lineal. Es as como aparece la
programacion orientada a objetos (POO). La POO viene de la evolucin de la programacin
estructurada bsicamente la POO simplifica la programacin con la nueva filosofa y nuevos
conceptosquetiene.LaPOOsebasaenladividirelprogramaenpequeasunidadeslgicasde
cdigo. A estas pequeas unidades lgicas de cdigo se les llama objetos. Los objetos son
unidadesindependientesquesecomunicanentreellosmediantemensajes.Veamosconmayor
detenimientoestetema.

Culessonlasventajasdeunlenguajeorientadoaobjetos?
Fomentalareutilizacinyextensindelcdigo.
Permitecrearsistemasmscomplejos.
Relacionarelsistemaalmundoreal.
Facilitalacreacindeprogramasvisuales.
Construccindeprototipos
Agilizaeldesarrollodesoftware
Facilitaeltrabajoenequipo
Facilitaelmantenimientodelsoftware
Lo interesante de la POO (programacion orientada a objetos) es que proporciona conceptos y
herramientas con las cuales se modela y representa el mundo real tan fielmente como sea
posible.

ElmodeloOrientadoaobjetos
http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

2/6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula


Paraentenderestemodelovamosarevisar4conceptosbsicos:
objetos
clases
Herencia
Envodemensajes

1.Objetos
Entenderqueesunobjetoeslaclaveparaentendercualquierlenguajeorientadoaobjetos.
Existenmuchasdefinicionesqueselehadadoalobjeto.Primeroempecemosentendiendoque
esunobjetodelmundoreal.Unobjetodelmundorealescualquiercosaquevemosanuestro
alrededor. Digamos que para leer este artculo lo hacemos a travs del monitor y una
computadora,ambossonobjetos,aligualquenuestrotelfonocelular,unrbolounautomvil.
Analicemos un poco ms a un objeto del mundo real, como la computadora. No necesitamos
ser expertos en hardware para saber que una computadora est compuesta internamente por
varioscomponentes:latarjetamadre,elchipdelprocesador,undiscoduro,unatarjetadevideo,
y otras partes ms. El trabajo en conjunto de todos estos componentes hace operar a una
computadora.
Internamente, cada uno de estos componentes puede ser sumamente complicado y puede ser
fabricado por diversas compaas con diversos mtodos de diseo. Pero nosotros no
necesitamossabercmotrabajancadaunodeestoscomponentes,comosaberquehacecada
uno de los chips de la tarjeta madre, o cmo funciona internamente el procesador. Cada
componente es una unidad autnoma, y todo lo que necesitamos saber de adentro es cmo
interactanentresloscomponentes,saberporejemplosielprocesadorylasmemoriasson
compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta de video. Cuando
conocemos como interaccionan los componentes entre s, podremos armar fcilmente una
computadora.
Que tiene que ver esto con la programacin? La programacion orientada a objetos trabaja de
esta manera. Todo el programa est construido en base a diferentes componentes (objetos),
cada uno tiene un rol especfico en el programaytodosloscomponentes pueden comunicarse
entreellosdeformaspredefinidas.
Todoobjetodelmundorealtiene2componentes:caractersticasycomportamiento.
Porejemplo,losautomvilestienencaractersticas(marca,modelo,color,velocidadmxima,etc.)
ycomportamiento(frenar,acelerar,retroceder,llenarcombustible,cambiarllantas,etc.).
LosobjetosdeSoftware,aligualquelosobjetosdelmundoreal,tambintienencaractersticas
y comportamientos. Un objeto de software mantiene sus caractersticas en una o ms
"variables", e implementa su comportamiento con "mtodos". Un mtodo es una funcin o
subrutinaasociadaaunobjeto.

Pararedondearestasideas,imaginemosquetenemosestacionadoennuestracocheraunFord
Focuscolorazulquecorrehasta260km/h.Sipasamoseseobjetodelmundorealalmundodel
software,tendremosunobjetoAutomvilconsuscaractersticaspredeterminadas:
Marca=Ford
Modelo=Focus
Color=Azul
VelocidadMxima=260km/h
Cuandoalascaractersticasdelobjetoleponemosvaloresdecimosqueelobjetotieneestados.
Lasvariablesalmacenanlosestadosdeunobjetoenundeterminadomomento.
Definicin terica: Un objeto es una unidad de cdigo compuesto de variables y mtodos
relacionados.
2.Lasclases
Enelmundoreal,normalmentetenemosmuchosobjetos del mismo tipo. Por ejemplo, nuestro
telfono celular es slo uno de los miles que hay en el mundo. Si hablamos en trminos de la
programacionorientadaaobjetos,podemosdecirquenuestroobjetocelularesunainstancia
de una clase conocida como "celular". Los celulares tienen caractersticas (marca, modelo,
sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar
mensajesmultimedia,transmisindedatos,etc.).

http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

3/6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula


Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares
compartenesascaractersticascomunesyconstruyenmodelosoplantillascomunes,paraquea
partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o
plantillalellamamosclase,yalosequiposquesacamosapartirdeellalallamamosobjetos.

Estomismoseaplicaalosobjetosdesoftware,sepuedetenermuchosobjetosdelmismotipoy
mismascaractersticas.
Definicin terica: La clase es un modelo o prototipo que define las variables y mtodos
comunes a todos los objetos de cierta clase. Tambin se puede decir que una clase es una
plantillagenricaparaunconjuntodeobjetosdesimilarescaractersticas.
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad no
existediferenciaentreunobjetoyunainstancia.Sloqueelobjetoesuntrminomsgeneral,
perolosobjetosylasinstanciassonambasrepresentacindeunaclase.
DefinicinTerica:Unainstanciaesunobjetodeunaclaseenparticular.
3.Herencia
La herencia es uno de los conceptos ms cruciales en la POO (programacion orientada a
objetos). La herencia bsicamente consiste en que una clase puede heredar sus variables y
mtodosavariassubclases(laclase que hereda es llamada superclaseoclasepadre). Esto
significa que una subclase, aparte de los atributos y mtodos propios, tiene incorporados los
atributos y mtodos heredadosde la superclase. De esta manera se crea una jerarqua de
herencia.
Porejemplo,imaginemosqueestamoshaciendoelanlisisdeunSistemaparaunatiendaque
vendeyreparaequiposcelulares.

En el grfico vemos 2 clases ms que posiblemente necesitemos para crear nuestro Sistema.
Esas 2 clases nuevas se construirn a partir de la clase Celular existente. De esa forma
utilizamoselcomportamientodelaSuperclase.
En general, podemos tener una gran jerarqua de clases tal y como vemos en el siguiente
grfico:

4.EnvodeMensajes
Unobjetoesintilsiestaislado.Elmedioempleadoparaqueunobjetointeracteconotroson
losmensajes.Hablandoentrminosunpocomstcnicos,losmensajessoninvocacionesalos
mtodosdelosobjetos.

http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

4/6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula

CaractersticasasociadasalPOO
Abstraccin
La abstraccin consiste en captar las caractersticas esenciales de un objeto, as como su
comportamiento. Por ejemplo, volvamos al ejemplo de los automviles, Qu caractersticas
podemos abstraer de los automviles? O lo que es lo mismo Qu caractersticas semejantes
tienen todos los automviles? Todos tendrn una marca, un modelo, nmero de chasis, peso,
llantas,puertas,ventanas,etc.Y en cuanto a su comportamiento todos los automviles podrn
acelerar,frenar,retroceder,etc.
Enloslenguajesdeprogramacinorientadaaobjetos,elconceptodeclaseeslarepresentacin
yelmecanismoporelcualsegestionanlasabstracciones.
Porejemplo,enJavatenemos:
publicclassAutomovil{
//variables
//mtodos
}
Encapsulamiento
Elencapsulamientoconsisteenunirenlaclaselascaractersticas y comportamientos,esto
es, las variables y mtodos. Es tener todo esto es una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la
abstraccinyelocultamientoqueveremosacontinuacin.
Lautilidaddelencapsulamientovaporlafacilidadparamanejarlacomplejidad,yaquetendremos
a las clases como cajas negras donde slo se conoce el comportamiento pero no los detalles
internos, y esto es conveniente porque nos interesar ser conocer qu hace la clase pero no
sernecesariosabercmolohace.
Ocultamiento
Eslacapacidaddeocultarlosdetallesinternosdelcomportamientodeunaclaseyexponerslo
losdetallesqueseannecesariosparaelrestodelsistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la clase. Restringir porque
habrciertocomportamientoprivadodelaclasequenopodrseraccedidoporotrasclases.Y
controlarporquedaremosciertosmecanismosparamodificarelestadodenuestraclaseyesen
estos mecanismos dnde se validarn que algunas condiciones se cumplan. En Java el
ocultamientoselograusandolaspalabrasreservadas:public,privateyprotecteddelantedelas
variablesymtodos.
Modularidad
Es la propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas
mdulos),cadaunadelascualesdebesertanindependientecomoseaposibledelaaplicacin
en s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen
conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la
modularidaddediversasformas.
Polimorfismo
Comportamientosdiferentes,asociadosaobjetosdistintos,puedencompartirelmismonombreal
llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est
usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener
objetosdediferentestipos,ylainvocacindeuncomportamientoenunareferenciaproducirel
comportamientocorrectoparaeltiporealdelobjetoreferenciado.Cuandoestoocurreen"tiempo
de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica.
Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de
polimorfismo,talescomolasplantillasylasobrecargadeoperadoresdeC++.

LenguajesdeProgramacinOrientadoaobjetos
En1985,E.StroustrupextendiellenguajedeprogramacinCaC++,esdecirCconconceptos
declasesyobjetos,tambinporesasfechassecreodesdesusbasesellenguajeEIFFEL.
En 1995 apareci el ms reciente lenguaje OO, Java desarrollado por SUN, que hereda
conceptosdeC++.
El lenguaje de desarrollo ms extendido para aplicaciones Web, el PHP 5, trae todas las
caractersticasnecesariasparadesarrollarsoftwareorientadoaobjetos.
Ademsdeotroslenguajesquefueronevolucionando,comoelPascalaDelphi.
Finalmente tambin otros lenguajes script como el ActionScript que si bien no es totalmente
orientadoaobjetosperosposeelascaractersticas.

AnlisisydiseoOrientadoaobjetos
Para el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a
objetos.Tambinsenecesitarrealizarunanlisisydiseoorientadoaobjetos.
ElmodelamientovisualeslaclavepararealizarelanlisisOO(orientadoaobjeto).Desdelos
inicios del desarrollo de software OO han existido diferentes metodologas para hacer esto del
modelamiento,perosinlugaraduda,elLenguajedeModelamientoUnificado(UML)pusofina
laguerrademetodologas.
SegnlosmismosdiseadoresdellenguajeUML,stetienecomofinmodelarcualquiertipode

http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

5/6

16/2/2016

Curso gratuito - Programacion Orientada a Objetos - Ciberaula


sistemas (no solamente de software) usando los conceptos de la orientacin a objetos. Y
adems,estelenguajedebeserentendibleparaloshumanosymquinas.
ActualmenteenlaindustriadeldesarrollodesoftwaretenemosalUMLcomounestndarparael
modelamiento de sistemas OO. Fue la empresa Racional que cre estas definiciones y
especificaciones del estndar UML, y lo abri al mercado. La misma empresa cre uno de los
programasmsconocidoshoyendaparaestefinelRacionalRose,perotambinexistenotros
programascomoelPoseidonquetraelicenciasdeltipocommunityeditionquepermitensuuso
libremente.
ElUMLconstadetodosloselementosydiagramasquepermitenmodelarlossistemasenbaseal
paradigma orientado a objetos. Los modelos orientados a objetos cuando se construyen en
forma correcta, son fciles de comunicar, cambiar, expandir, validar y verificar. Este
modelamiento en UML es flexible al cambio y permite crear componentes plenamente
reutilizables.

Resumen
Por qu seguimos buscando nuevas tcnicas de desarrollo? Por el aumento de la
complejidaddelossistemas.
En un programa orientado a objetos tendremos a un conjunto de objetos colaborando
entreellos.
La orientacin a objetos es paradigma de que est de moda para el desarrollo de
software.
Un objeto es una abstraccin conceptual del mundo real que se puede traducir a un
lenguajedeprogramacinorientadoaobjetos.
Unobjetodelmundorealtienecaractersticasycomportamientos,ydelamismamanera,
unobjetodelmundodelsoftwaretienevariablesymtodos.
Unaclaseesunaplantillaquedefinelasvariablesymtodosaserincluidasenuntipode
objetoespecfico.
Losobjetostambinsonllamadosinstanciasdelaclase.Losobjetosssloalmacenansu
estado.Sedicequeunobjetotieneestadocuandotienevaloresensusvariables.
Losobjetossecomunicanentreellosusandolosmensajes.Unmensajeeslainvocacin
deunmtododelobjeto.
Laorientacinaobjetosrequieredeunametodologaqueintegreelprocesodedesarrollo
yunlenguajedemodelamientoconherramientasytcnicasadecuadas.

Avisolegal
LomsbuscadoyvisitadoenCiberaula
Masters:MasterenProgramacinWeb|MasterenDiseoGrfico|3DStudioMax
Cursos:CursoOnlinedeExcel|CursoOnlinedeAccess|ExcelBasico|ExcelIntermedio|ExcelAvanzado|ExcelparaBigData|AccessAvanzado|MacrosExcel|MicrosoftExcel
Financiero|ProgramacindeMacrosExcelconVisualBasic|CursoOnlinedePrevenciondeRiesgosLaborales|CursosdePrevencionderiesgoslaborales|CursoOnlinedeAtencion
alCliente|GNU/Linux|CursodeJava|CursosdePHP|CursodeHTML|CursodeASP.NET|CursonormasISO|3dStudioMax|3dStudioIluminacin|3dStudioModelado|Curso
deIngles|ExcelOnline|funcionesexcel|CursodeOffice|CursoOnlinedeEneagrama|cursoonlinedediseografico|cursosdejavaonline|cursodelinux|CursoOnlinede
EducacinparalaIgualdaddeOportunidades|CursoonlinedeContaplus|cursoonlinedeliderazgo|
Secciones:Formacionprogramadaporlasempresas|ProgramacionOrientadaaObjetos|CursosOnLine|TutorialLinux|LenguajeJava|CursosSENCE|CursosBonificados|Cursos
OnlineBonificados|fundaciontripartitacursos|elearningcursos|
|sistemaoperativolinux|Cursossence2016|
Recomendados:Deontologia|CursosGratuitos|AulaVirtual|EticaProfesional|QueesWord|Illustratoronline|cursosbonificados2016|cursosbonificadosparatrabajadores|
POOYJava:POO|J2EE|J2SE|Operadoreslogicos|OperadoresRelacionales|ListasenJava|Abstraccion|Encapsulamiento|

Copyright20142015CiberaulaReservadosTodoslosDerechos

http://www.ciberaula.com/articulo/tecnologia_orientada_objetos/

6/6

S-ar putea să vă placă și