SlideShare una empresa de Scribd logo
1 de 5
Características de la POO
Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son
las más importantes:
Abstracción
Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema
sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"
con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los
métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una
abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e
identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave
en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de
clases que permitan modelar la realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de
abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este
concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Modularidad
Se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes
partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la
encapsulación, los lenguajes soportan la modularidad de diversas formas.
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos
que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un
objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del
objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto
de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto,
permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de
abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al 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 objetos de diferentes tipos, y la invocación de un
comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación
dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales
como las plantillas y la sobrecarga de operadores de C++.
Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos
heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de
objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo.
Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.
Recolección de basura
La recolección de basura o garbage collection es la técnica por la cual el entorno de objetos se encarga de destruir
automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a
ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el
entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes
híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object
Pascal, esta característica no existe y la memoria debe desasignarse expresamente.
Estándares de programación
Un estandar de programación es una forma de "normalizar" la programación de forma tal que al trabajar en un proyecto
cualquiera de las personas involucradas en el mismo tenga acceso y comprenda el codigo. En otras palabras define la
escritura y organización del codigo fuente de un programa. Además el seguir un estandar de programación te facilita
como programador la modificación de tu propio código fuente aunque no estés trabajando en un equipo.
Por lo general los estandares de programacion definen la forma en que deben ser declaradas las variables, las clases, los
comentarios, en algunos estandares espedifica que datos deben incluirse acerca del programador y de los cambios
realizados al codigo fuente, etc.
Por ejemplo utilizar una determinada nomenclatura para la declaración de variables, o de clases dependiendo de su tipo
te es de gran ayuda porque al leer el nombre de la variable ya sabes con que tipo de datos estas trabajando y no tenes
que buscar la declaracion de la variable, todo esto dependiendo siempre del entorno y lenguaje de programación que
utilices.
Polimorfismo
El polimorfismo, en programación, significa básicamente usar una misma función (es decir, una con el mismo nombre)
para hacer varias cosas, dependiendo de quien le ha llamado.
En orientación a objetos (POO), es un método de una clase base heredado por diferentes objetos "hijos" que según el
comportamiento de cada uno, requerirán hacer algo diferente con la función.
Un ejemplo sencillo es un vehículo: Todos los vehículos "corren" (por decirlo así) pero no todos "corren" igual. Así, por
ejemplo, una carcochita viaja a 20 km/h mientras un lamborghini lo hace a más de 100 km/h (por decir algo simple):
clase vehiculo {
metodo run()
}
clase carcochita => es un vehículo {
redefine metodo run() { corre a 20km/h }
}
clase lamborghini => es un vehículo {
redefine metodo run() { corre a 150km/h }
}
Y el polimorfismo:
vehiculo carrito1, carrito2 /* ambos son vehículos */
carrito1 = new lamborghini
carrito2 = new carcochita
competir: carrito1.run() vs. carrito2.run() /* ambos llaman a run */
Ojo que ambos son vehiculos (ambos se declaran como tipo vehiculo) y cada uno llama al método run (correr), el cual
será ejecutado dependiendo del tipo de objeto creado.
Así, si los pones a competir, ambos corren (misma función) pero obviamente uno llegará primero y el otro después
(diferente comportamiento).
Dependiendo del lenguaje (de programación) en el que escribas, la sintaxis variará, pero básicamente es eso.
Ejemplos hay muchos:
- todos los animales comen algo, pero algunos comen carne, otros hierbitas, otros se comen entre si, etc.
class animal {
metodo comer()
}
class carnivoro => es un animal {
redefine metodo comer() { come carne }
}
class herbivoro => es un animal {
redefine metodo comer() { come hierba }
}
class omnivoro => es un animal {
redefine metodo comer() { como de todo }
}
animal leon, tortuga
leon = new carnivoro
tortuga = new herbivoro
leon.comer
toruga.comer
- todas las personas tienen un color de piel, pero algunos son negritos, otros amarillos, otros blancos, otros rojos, otros
verdes, otros azules, otros color #548762, etc.
class personita {
metodo colordepiel()
}
class negrito: es una personita {
redefine metodo colordepiel() { es negrito }
}
class indito: es una personita {
redefine metodo colordepiel() { es un indito }
}
personita manuel, juan, pepita, lulu
lulu = new negrito
pepita = new indito
...
manuel.colordepiel, etcétera.
Esta claro que al ser un método de una clase (o una función en programación estructurada) puede recibir diferentes
valores (parámetros y retornar algún tipo diferente de dato):
Todos los vehículos corren, pero algunos necesitan combustible y otros no. Los que usan combustible puede ser
petroleo o gasolina (u otro como gas o agua). Los que usan gasolina puede ser de 80 octanos, 90 octanos, etc.
class vehiculo {
metodo run(combustible)
}
class bicicleta => es un vehiculo {
redefine metodo run(combustible=null) {}
}
class gasolinero => es un vehiculo {
redefine metodo run(combustible) {...}
}
vehiculo a,b,c
a=new gasolinero
b=new bicibleta
c=new gasolinero
a.run(80 octanos)
b.run
c.run(90 octanos)

Más contenido relacionado

La actualidad más candente

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosAlexis Arguello
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 
Uml orientada a objetos
Uml orientada a objetosUml orientada a objetos
Uml orientada a objetosielectronicos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosxiomaracadenag
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Trabajo de diceño y realizacion
Trabajo de diceño y realizacionTrabajo de diceño y realizacion
Trabajo de diceño y realizacionLolyPila
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22maxajane
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAgapito26
 
Conceptos de programación orientada a objetos
Conceptos de programación orientada a objetosConceptos de programación orientada a objetos
Conceptos de programación orientada a objetosGabriel Mondragón
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSLuis Miguel Gutierrez
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosronnyme21
 

La actualidad más candente (20)

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Uml orientada a objetos
Uml orientada a objetosUml orientada a objetos
Uml orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Encapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANSEncapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANS
 
Conceptos Basicos de POO
Conceptos Basicos de POOConceptos Basicos de POO
Conceptos Basicos de POO
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Trabajo de diceño y realizacion
Trabajo de diceño y realizacionTrabajo de diceño y realizacion
Trabajo de diceño y realizacion
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Clases en java
Clases en javaClases en java
Clases en java
 
Conceptos de programación orientada a objetos
Conceptos de programación orientada a objetosConceptos de programación orientada a objetos
Conceptos de programación orientada a objetos
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Orientada a objetos
Orientada a objetosOrientada a objetos
Orientada a objetos
 
Poo
PooPoo
Poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Destacado

Destacado (20)

walking
walkingwalking
walking
 
Slides
SlidesSlides
Slides
 
الفصول الافتراضية
الفصول الافتراضيةالفصول الافتراضية
الفصول الافتراضية
 
Airtame vidéo en streaming
Airtame   vidéo en streamingAirtame   vidéo en streaming
Airtame vidéo en streaming
 
Desso catalog
Desso catalogDesso catalog
Desso catalog
 
Vitoria Eu Comigo
Vitoria Eu ComigoVitoria Eu Comigo
Vitoria Eu Comigo
 
Ativ3 9 Adelcio 2
Ativ3 9 Adelcio 2Ativ3 9 Adelcio 2
Ativ3 9 Adelcio 2
 
Redecorate with items you already have. ppt
Redecorate with items you already have. pptRedecorate with items you already have. ppt
Redecorate with items you already have. ppt
 
Group discussion
Group discussion Group discussion
Group discussion
 
O Sete
O SeteO Sete
O Sete
 
9 de abril
9 de abril9 de abril
9 de abril
 
RACCO MANIA 01 JAN 2010
RACCO MANIA 01 JAN 2010RACCO MANIA 01 JAN 2010
RACCO MANIA 01 JAN 2010
 
Tenzin gyatso
Tenzin gyatso Tenzin gyatso
Tenzin gyatso
 
Old Dominion vs. Charlotte: Baseball Game March 29
Old Dominion vs. Charlotte: Baseball Game March 29Old Dominion vs. Charlotte: Baseball Game March 29
Old Dominion vs. Charlotte: Baseball Game March 29
 
Lindas Imagens
Lindas ImagensLindas Imagens
Lindas Imagens
 
Historia6 exer
Historia6 exerHistoria6 exer
Historia6 exer
 
Ruatoria by Anton
Ruatoria by AntonRuatoria by Anton
Ruatoria by Anton
 
tecnologia
tecnologiatecnologia
tecnologia
 
1020 chen xi
1020 chen xi1020 chen xi
1020 chen xi
 
Kp3419221926
Kp3419221926Kp3419221926
Kp3419221926
 

Similar a Analisis de la PPO

Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalJose Angel Rodriguez
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetosvilma pilco
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
Características de la programación orientada a objetos
Características de la programación orientada a objetosCaracterísticas de la programación orientada a objetos
Características de la programación orientada a objetosUriel Garcia
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosALfonsx Viejo
 
Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objetokcarbache
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetoslindacajaperuiz
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con javaEudris Cabrera
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjoelnicolasv
 
Exposicion orientada a objetos
Exposicion orientada a objetosExposicion orientada a objetos
Exposicion orientada a objetospc79599paty
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospc79599paty
 
Reporte.. del video0( greysh)
Reporte.. del video0( greysh)Reporte.. del video0( greysh)
Reporte.. del video0( greysh)grachika
 
Diseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosDiseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosJosue Sarabia
 

Similar a Analisis de la PPO (20)

Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetos
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Características de la programación orientada a objetos
Características de la programación orientada a objetosCaracterísticas de la programación orientada a objetos
Características de la programación orientada a objetos
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Cspr
CsprCspr
Cspr
 
Cspr
CsprCspr
Cspr
 
Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objeto
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Caracteristicas poo
Caracteristicas pooCaracteristicas poo
Caracteristicas poo
 
Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
Java
JavaJava
Java
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Exposicion orientada a objetos
Exposicion orientada a objetosExposicion orientada a objetos
Exposicion orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Reporte.. del video0( greysh)
Reporte.. del video0( greysh)Reporte.. del video0( greysh)
Reporte.. del video0( greysh)
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Diseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetosDiseña y construye programas orientados a objetos
Diseña y construye programas orientados a objetos
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (19)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Analisis de la PPO

  • 1. Características de la POO Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes: Abstracción Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar. Encapsulamiento Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente. Modularidad Se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas. Principio de ocultación Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos. Polimorfismo Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al 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 objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++. Herencia Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple. Recolección de basura La recolección de basura o garbage collection es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.
  • 2. Estándares de programación Un estandar de programación es una forma de "normalizar" la programación de forma tal que al trabajar en un proyecto cualquiera de las personas involucradas en el mismo tenga acceso y comprenda el codigo. En otras palabras define la escritura y organización del codigo fuente de un programa. Además el seguir un estandar de programación te facilita como programador la modificación de tu propio código fuente aunque no estés trabajando en un equipo. Por lo general los estandares de programacion definen la forma en que deben ser declaradas las variables, las clases, los comentarios, en algunos estandares espedifica que datos deben incluirse acerca del programador y de los cambios realizados al codigo fuente, etc. Por ejemplo utilizar una determinada nomenclatura para la declaración de variables, o de clases dependiendo de su tipo te es de gran ayuda porque al leer el nombre de la variable ya sabes con que tipo de datos estas trabajando y no tenes que buscar la declaracion de la variable, todo esto dependiendo siempre del entorno y lenguaje de programación que utilices. Polimorfismo El polimorfismo, en programación, significa básicamente usar una misma función (es decir, una con el mismo nombre) para hacer varias cosas, dependiendo de quien le ha llamado. En orientación a objetos (POO), es un método de una clase base heredado por diferentes objetos "hijos" que según el comportamiento de cada uno, requerirán hacer algo diferente con la función. Un ejemplo sencillo es un vehículo: Todos los vehículos "corren" (por decirlo así) pero no todos "corren" igual. Así, por ejemplo, una carcochita viaja a 20 km/h mientras un lamborghini lo hace a más de 100 km/h (por decir algo simple): clase vehiculo { metodo run() } clase carcochita => es un vehículo { redefine metodo run() { corre a 20km/h } } clase lamborghini => es un vehículo { redefine metodo run() { corre a 150km/h } } Y el polimorfismo:
  • 3. vehiculo carrito1, carrito2 /* ambos son vehículos */ carrito1 = new lamborghini carrito2 = new carcochita competir: carrito1.run() vs. carrito2.run() /* ambos llaman a run */ Ojo que ambos son vehiculos (ambos se declaran como tipo vehiculo) y cada uno llama al método run (correr), el cual será ejecutado dependiendo del tipo de objeto creado. Así, si los pones a competir, ambos corren (misma función) pero obviamente uno llegará primero y el otro después (diferente comportamiento). Dependiendo del lenguaje (de programación) en el que escribas, la sintaxis variará, pero básicamente es eso. Ejemplos hay muchos: - todos los animales comen algo, pero algunos comen carne, otros hierbitas, otros se comen entre si, etc. class animal { metodo comer() } class carnivoro => es un animal { redefine metodo comer() { come carne } } class herbivoro => es un animal { redefine metodo comer() { come hierba } } class omnivoro => es un animal { redefine metodo comer() { como de todo } } animal leon, tortuga leon = new carnivoro
  • 4. tortuga = new herbivoro leon.comer toruga.comer - todas las personas tienen un color de piel, pero algunos son negritos, otros amarillos, otros blancos, otros rojos, otros verdes, otros azules, otros color #548762, etc. class personita { metodo colordepiel() } class negrito: es una personita { redefine metodo colordepiel() { es negrito } } class indito: es una personita { redefine metodo colordepiel() { es un indito } } personita manuel, juan, pepita, lulu lulu = new negrito pepita = new indito ... manuel.colordepiel, etcétera. Esta claro que al ser un método de una clase (o una función en programación estructurada) puede recibir diferentes valores (parámetros y retornar algún tipo diferente de dato): Todos los vehículos corren, pero algunos necesitan combustible y otros no. Los que usan combustible puede ser petroleo o gasolina (u otro como gas o agua). Los que usan gasolina puede ser de 80 octanos, 90 octanos, etc. class vehiculo { metodo run(combustible)
  • 5. } class bicicleta => es un vehiculo { redefine metodo run(combustible=null) {} } class gasolinero => es un vehiculo { redefine metodo run(combustible) {...} } vehiculo a,b,c a=new gasolinero b=new bicibleta c=new gasolinero a.run(80 octanos) b.run c.run(90 octanos)