SlideShare una empresa de Scribd logo
1 de 33
INSTITUTO TECNOLÓGICO DE MINATITLÁN
• VIDAL RUEDA DAVID
• CARRERA: ING. ELECTRÓNICA
• MATERIA: PROGRAMACIÓN VISUAL.
• DOCENTE. ING. GUILLERMINA JIMÉNEZ RASGADO
PROGRAMACIÓN ORIENTADA A OBJETOS
(POO)
• Es un paradigma de programación que
usa los objetos en sus interacciones, para
diseñar aplicaciones y
programas informáticos. Está basado en
varias técnicas,
incluyendo herencia, cohesión, abstracció
n, polimorfismo, acoplamiento y encapsul
amiento. Su uso se popularizó a
principios de la década de los años 1990.
En la actualidad, existe una gran variedad
de lenguajes de programación que
soportan la orientación a objetos.
¿POR QUÉ SE PROGRAMA?
Aprender un programa es un camino creativo nosotros
podemos tomar algunas ideas del siguiente nivel y expresar
soluciones a la sociedad.
Facilita la creación de software de calidad: potencia en
mantenimiento, la extensión y la reutilización.
A través del proceso de programar, nosotros aprendemos
varias habilidades como lectura de crítica, análisis de
pensamiento y creación de síntesis.
Pero nosotros no podemos programar todas las soluciones
con el mismo método eso es porque aparece la paradigma de la
programación.
CLASE
• Una clase es un conjunto de objetos que comparten una
estructura y comportamiento comunes.
• Clase representa una abstracción, la esencia que comparten
los objetos.
• Un objeto es un ejemplo de una clase.
• Un objeto no es una clase, y una clase no es un objeto
(aunque puede serlo, p.e. en Smalltalk).
• Las clases actuan como intermediarias entre una abstracción
y los clientes que pretenden utilizar la abstracción. De esta
forma, la clase muestra:
• visión externa de comportamiento (interface), que enfatiza la
abstracción escondiendo su estructura y secretos de
comportamiento.
• visión interna (implementación), que abarca el código que se
ofrece en la interface de la clase.
OBJETO
Un objeto es algo de lo que hablamos y
que
podemos manipular.
Existen en el mundo real (o en nuestro
entendimiento del mismo)
Un objeto puede ser creado
instanciando una clase, como ocurre en la
programación orientada a objetos, o
mediante escritura directa de código y la
replicación otros objetos, como ocurre
en la programación basada en prototipos. Del ejemplo anterior
HERENCIA:
Es una propiedad que permite que los objetos
sean creados a partir de otros ya existentes,
obteniendo características (métodos y atributos)
similares a los ya existentes. Es la relación entre
una clase general y otra clase mas especifica. Es
un mecanismo que nos permite crear clases
derivadas a partir de clase base, Nos permite
compartir automáticamente métodos y datos
entre clases subclases y objetos. Por ejemplo: Si
declaramos una clase párrafo derivada de un
clase texto todos los métodos y variables
asociadas con la clase texto son
automáticamente heredados por la subclase
párrafo.
ATRIBUTO
Los atributos describen el estado
del objeto. Un atributo consta de
dos partes, un nombre de atributo y
un valor de atributo.
Los objetos simples pueden constar
de tipos primitivos, tales como
enteros, caracteres, boolen, etc. Los
objetos complejos pueden constar
de pilas, conjuntos, listas, arrays, etc,
o incluso de estructuras recursivas
de alguno o todos de sus elementos.
Cuando se declara el atributo o variable
miembro euros en la clase Precio de la
siguiente
forma:
public class Precio {
// Declaracion de atributos o variables
miembro
public double euros;
// Declaracion de métodos . . .
}
MÉTODO:
Los métodos ( operaciones o servicios ) describen el
comportamiento asociado a un objeto. La ejecución de un
método puede conducir a cambiar el estado del objeto o
dato local del objeto.
Cada método tiene un nombre y un cuerpo que realiza la
acción o comportamiento asociado con el nombre del
método
ABSTRACCIÓN
Expresa las características
esenciales de un objeto, las
cuales distinguen a los
objetos de los demás.
Nos permite trabajar con la
complejidad del mundo real
Separaremos el
comportamiento de la
implementación
Es más importante saber qué
se hace en lugar de cómo se
hace:
POLIMORFISMO
Es la capacidad de tener métodos
con el mismo nombre, con
comportamientos diferentes,
conocido como la sobre-escritura
de métodos y la sobrecarga de
operadores.
En ella expresa la posibilidad de
que el mismo mensaje, enviado a
objetos distintos, ejecute métodos
distintos.
Esto significa que podemos definir
dentro de dos clases distintas dos
operaciones con el mismo nombre
y aspecto externo, pero con
distintas implementaciones para
cada clase.
Vemos que FiguraGeometrica es
la superClase y Triangulo es la clase hija o
subClase, y por medio
del polimorfismo podemos crear una
instancia de Triangulo de tipo
FiguraGeometrica...
INTERFAZ
Es un conjunto de métodos que indican que una
clase tiene un comportamiento particular además
del que hereda de sus superclases.
Se definen un conjunto de métodos sin especificar
su implementación. Cuando una clase implementa
una interfaz debe especificar todos los métodos
contenidos en ella.
Para definir una clase que implementa una interfaz
hay que usar la palabra clave class*
INTERFAZ
CONSTRUCTORES
Java no permite variables miembro de clase ni objetos sin inicializar,
los inicializa siempre con valores por defecto.
La inicialización de objetos requiere el uso de constructores.
El compilador proporciona un constructor público por omisión para
cada clase que se define.
Un constructor es un método especial de la clase que se llama
automáticamente cada vez que se crea un objeto de esa clase su
función es inicializar objetos de la clase.
Al crear un objeto de una clase:
1º Se reserva memoria (operador new)
2º Se inician los atributos del objeto bien a los valores indicados en
la declaración o a los valores por defecto. (atributos numéricos a 0,
alfanuméricos a nulo y referencias a null)
3º Se llama al constructor.
Un miembro de una clase puede ser iniciado con un objeto de otra clase.
Características de los constructores
- Los constructores no tienen valor de retorno, ni
siquiera void.
- Su nombre es siempre el mismo que el de la clase. Su
argumento implícito es el objeto que está creando.
- No se hereda.
- No pueden ser declarados final, static, abstract,
sychronized o native.
ENCAPSULAMIENTO
 Es la propiedad que tienen los objetos, de contener tanto
datos como métodos, los cuales pueden manipular o
cambiar estos datos.
 Consiste en separar los aspectos externos de un objeto
(que pueden ser accedidos desde otros objetos) de los
detalles internos de implementación del mismo.
ENCAPSULAMIENTO
 Es importante porque mediante esta propiedad, los objetos,
tienen el control necesario, de la integridad de los datos
contenidos en estos.
 Facilidad de mantenimiento y depuración de los programas.
 Los clientes de una clase sólo conocen la interfaz de la misma,
es decir, conocen los prototipos de las operaciones pero no
cómo están implementadas.
 Por tanto, si la implementación de una clase varía, y la interfaz
continúa siendo la misma, no es necesario cambiar el código de
los clientes.
COHESIÓN
Es una medida de la especialización con la que cuenta un objeto dentro de un
sistema, entre mas alta sea esta, es mejor.
La cohesión tiene que ver con la forma en la que agrupamos unidades de
software en una unidad mayor. Por ejemplo, la forma en la que agrupamos
funciones en una librería, o la forma en la que agrupamos métodos en una
clase, o la forma en la que agrupamos clases en una librería, etc...
Se suele decir que cuanto más cohesionados estén los elementos agrupados,
mejor.
ACOPLAMIENTO
El acoplamiento mide el grado de relacionamiento de un módulo
con los demás. A menor acoplamiento, mejor: el módulo en
cuestión será más sencillo de diseñar, programar, probar y
mantener.
En el diseño estructurado, se logra bajo acoplamiento reduciendo
las interacciones entre procedimientos y funciones, reduciendo la
cantidad y complejidad de los parámetros y disminuyendo al
mínimo los parámetros por referencia y los efectos colaterales.
De nuevo, el diseño orientado a objetos nos complica las cosas
con sus tres tipos de módulos. A los métodos, como pasó con la
cohesión, podemos analizarlos con los mismos criterios que a los
módulos del diseño estructurado.
MIEMBRO
Los miembros dato
Los valores de los atributos se guardan en los miembros dato o variables de
instancia. Los nombres de dichas variables comienzan por letra minúscula.
Vamos a crear una clase denominada Rectangulo, que describa las características
comunes a estas figuras planas que son las siguientes:
El origen del rectángulo: el origen o posición de la esquina superior izquierda del
rectángulo en el plano determinado por dos números enteros x e y.
Las dimensiones del rectángulo: ancho y alto, otros dos números enteros.
class Rectangulo{ int x; int y; int ancho; int alto; //faltan las funciones miembro }
UML
Def. Lenguaje Unificado de Modelado es una notación gráfica para
dibujar diagramas de conceptos de software.
Existen 3 niveles de diagramas en la concepción de un sistema de
software:
Diagrama Conceptual (sobre el dominio del problema)
Diagrama de Especificación sobre el diseño del software
Diagramas de Implementación
Los diagramas de especificación y de implementación tienen una fuerte
conexión con el código fuente
Solo se van
a ver los
últimos 2
OBJETIVOS DE LOS DIAGRAMAS
Diagrama de Especificación  transformación en código fuente
Diagrama de Implementación  descripción de un código fuente
existente
En ambos casos, crear un modelo donde se elimine la
ambigüedad y se dé formalidad
NIVEL CONCEPTUAL
Los diagramas conceptuales no están tan fuertemente
ligados con el código fuente.
No sigue reglas semánticas estrictas y por lo tanto su
resultado puede ser ambiguo y sujeto a interpretación.
EJEMPLO – NIVEL CONCEPTUAL
Con la frase “un perro es un animal”
Se ve que existen 2 entidades, perro y animal
La relación entre las entidades sería de generalización.
“Un perro es un caso de animal”
El diagrama sería:
Animal
Perro
EJEMPLO – NIVEL CONCEPTUAL
El diagrama sugiere que el Perro es una clase de Animal,
ó que el Perro es un caso especial de Animal
Sin embargo, se puede pensar que el perro, como especie
biológica, pertenece al reino animal ( se presta a
interpretaciones)
Animal
Perro
NIVEL DE ESPECIFICACIONES
Public class Animal {}
Public class Perro extends Animal {}
Sin embargo, en el nivel de especificaciones este código tiene mas coherencia
de manera que Animal y Perro están conectadas por una relación de herencia
El fallo para reconocer el nivel de un diagrama es la
fuente de errores significativos de comunicación entre
programadores y analistas
Un diagrama de nivel conceptual no define el código
fuente, no debe de hacerlo.
Un diagrama de nivel de especificaciones describe la
solución del problema no tiene porqué parecerse a un
diagrama conceptual
TIPOS DE DIAGRAMAS EN UML
Diagramas estáticos.- Describen la estructura lógica invariable
de los elementos software representando clases, objetos,
estructuras de datos y las relaciones entre ellas.
Diagramas dinámicos.- Muestran como cambian las entidades
software durante la ejecución, representando el flujo de
ejecución.
Diagramas físicos.- Muestran la estructura física invariable
como archivos fuente, bibliotecas, archivos binarios o de
datos y sus relaciones.
CONSIDERAR EL SIGUIENTE
CÓDIGO
DIAGRAMA DE OBJETOS
Objetos
Clase a la que pertenece el objeto
Enlaces
Nodos del arreglo
Muestra los objetos y sus
relaciones en un momento
particular de ejecución del
sistema
VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A
OBJETOS
La reutilización de código:
 Esta ahorra tiempo en el desarrollo de programas.
 Se utiliza software que ya ha sido probado.
Fácil mantenimiento y depuración de programas.
Extensibilidad: posibilidad de ampliar la funcionalidad
de la aplicación de manera sencilla.
Modularidad y encapsulación: el sistema se
descompone en objetos con unas responsabilidades
claramente especificadas.
CONCLUSION
La programación orientada a objetos permite la optimización
del código generado gracias a que mediante técnicas de
herencia, atributos éstaticos entre otros permiten, que el
código sea generico de manera que sea reutilizable.
Mediante las técnica aprendida en el presente curso podemos
establecer una solución primitiva de un problema real, tan
solo con relacionarlo con objetos lógicos que séran usados
para el desarrollo del sofware.
Podemos dar a conocer de una forma sencilla los mecanismos
que se usan en este nivel de programación, a personas que
deseen una explicacion rápida y sencilla de lo que es la
programación orientada a objetos.

Más contenido relacionado

La actualidad más candente

Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacionfranciscocain
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosEliecer Suarez
 
Fundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosFundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosMarines Ahuanlla
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetosCirino Silva tovar
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosEdna Rheiner
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - librotaninof
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a ObjetosIsmael Perea
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosmichaelalta
 
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
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 

La actualidad más candente (20)

Poo presentacion
Poo presentacionPoo presentacion
Poo presentacion
 
Programacion visual
Programacion visualProgramacion visual
Programacion visual
 
Programacion orientada a_objetos
Programacion orientada a_objetosProgramacion orientada a_objetos
Programacion orientada a_objetos
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado Objetos
 
Fundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosFundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a Objetos
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos
 
S2-Representación Gráfica
S2-Representación GráficaS2-Representación Gráfica
S2-Representación Gráfica
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentos
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - libro
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
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
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 

Destacado

Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 
Enum y ArrayList en Java
Enum y ArrayList en JavaEnum y ArrayList en Java
Enum y ArrayList en JavaJimmy Ramos
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 

Destacado (8)

Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
Conceptos de la poo
Conceptos de la pooConceptos de la poo
Conceptos de la poo
 
Enum y ArrayList en Java
Enum y ArrayList en JavaEnum y ArrayList en Java
Enum y ArrayList en Java
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Similar a Conceptos poo

Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IEKaren Olan
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradavnslgars
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoIsrael Rey
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objetocesar
 
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
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjaninaplaza
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptjuan gonzalez
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)MIGUEL_INGENIERO
 
Programación orientado a objetos miranda burgos, armas martinez
Programación orientado a objetos miranda burgos, armas martinezProgramación orientado a objetos miranda burgos, armas martinez
Programación orientado a objetos miranda burgos, armas martinezErnesto Miranda
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
Daniel espinosa garzon
Daniel espinosa garzonDaniel espinosa garzon
Daniel espinosa garzonorus004
 

Similar a Conceptos poo (20)

Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
 
Compu 1
Compu 1Compu 1
Compu 1
 
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
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Guia1 pii
Guia1 piiGuia1 pii
Guia1 pii
 
Programación orientado a objetos miranda burgos, armas martinez
Programación orientado a objetos miranda burgos, armas martinezProgramación orientado a objetos miranda burgos, armas martinez
Programación orientado a objetos miranda burgos, armas martinez
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la Programación
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Daniel espinosa garzon
Daniel espinosa garzonDaniel espinosa garzon
Daniel espinosa garzon
 

Conceptos poo

  • 1. INSTITUTO TECNOLÓGICO DE MINATITLÁN • VIDAL RUEDA DAVID • CARRERA: ING. ELECTRÓNICA • MATERIA: PROGRAMACIÓN VISUAL. • DOCENTE. ING. GUILLERMINA JIMÉNEZ RASGADO
  • 2. PROGRAMACIÓN ORIENTADA A OBJETOS (POO) • Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracció n, polimorfismo, acoplamiento y encapsul amiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
  • 3.
  • 4. ¿POR QUÉ SE PROGRAMA? Aprender un programa es un camino creativo nosotros podemos tomar algunas ideas del siguiente nivel y expresar soluciones a la sociedad. Facilita la creación de software de calidad: potencia en mantenimiento, la extensión y la reutilización. A través del proceso de programar, nosotros aprendemos varias habilidades como lectura de crítica, análisis de pensamiento y creación de síntesis. Pero nosotros no podemos programar todas las soluciones con el mismo método eso es porque aparece la paradigma de la programación.
  • 5.
  • 6. CLASE • Una clase es un conjunto de objetos que comparten una estructura y comportamiento comunes. • Clase representa una abstracción, la esencia que comparten los objetos. • Un objeto es un ejemplo de una clase. • Un objeto no es una clase, y una clase no es un objeto (aunque puede serlo, p.e. en Smalltalk). • Las clases actuan como intermediarias entre una abstracción y los clientes que pretenden utilizar la abstracción. De esta forma, la clase muestra: • visión externa de comportamiento (interface), que enfatiza la abstracción escondiendo su estructura y secretos de comportamiento. • visión interna (implementación), que abarca el código que se ofrece en la interface de la clase.
  • 7. OBJETO Un objeto es algo de lo que hablamos y que podemos manipular. Existen en el mundo real (o en nuestro entendimiento del mismo) Un objeto puede ser creado instanciando una clase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos. Del ejemplo anterior
  • 8. HERENCIA: Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas especifica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, Nos permite compartir automáticamente métodos y datos entre clases subclases y objetos. Por ejemplo: Si declaramos una clase párrafo derivada de un clase texto todos los métodos y variables asociadas con la clase texto son automáticamente heredados por la subclase párrafo.
  • 9. ATRIBUTO Los atributos describen el estado del objeto. Un atributo consta de dos partes, un nombre de atributo y un valor de atributo. Los objetos simples pueden constar de tipos primitivos, tales como enteros, caracteres, boolen, etc. Los objetos complejos pueden constar de pilas, conjuntos, listas, arrays, etc, o incluso de estructuras recursivas de alguno o todos de sus elementos. Cuando se declara el atributo o variable miembro euros en la clase Precio de la siguiente forma: public class Precio { // Declaracion de atributos o variables miembro public double euros; // Declaracion de métodos . . . }
  • 10. MÉTODO: Los métodos ( operaciones o servicios ) describen el comportamiento asociado a un objeto. La ejecución de un método puede conducir a cambiar el estado del objeto o dato local del objeto. Cada método tiene un nombre y un cuerpo que realiza la acción o comportamiento asociado con el nombre del método
  • 11. ABSTRACCIÓN Expresa las características esenciales de un objeto, las cuales distinguen a los objetos de los demás. Nos permite trabajar con la complejidad del mundo real Separaremos el comportamiento de la implementación Es más importante saber qué se hace en lugar de cómo se hace:
  • 12. POLIMORFISMO Es la capacidad de tener métodos con el mismo nombre, con comportamientos diferentes, conocido como la sobre-escritura de métodos y la sobrecarga de operadores. En ella expresa la posibilidad de que el mismo mensaje, enviado a objetos distintos, ejecute métodos distintos. Esto significa que podemos definir dentro de dos clases distintas dos operaciones con el mismo nombre y aspecto externo, pero con distintas implementaciones para cada clase. Vemos que FiguraGeometrica es la superClase y Triangulo es la clase hija o subClase, y por medio del polimorfismo podemos crear una instancia de Triangulo de tipo FiguraGeometrica...
  • 13. INTERFAZ Es un conjunto de métodos que indican que una clase tiene un comportamiento particular además del que hereda de sus superclases. Se definen un conjunto de métodos sin especificar su implementación. Cuando una clase implementa una interfaz debe especificar todos los métodos contenidos en ella. Para definir una clase que implementa una interfaz hay que usar la palabra clave class*
  • 15. CONSTRUCTORES Java no permite variables miembro de clase ni objetos sin inicializar, los inicializa siempre con valores por defecto. La inicialización de objetos requiere el uso de constructores. El compilador proporciona un constructor público por omisión para cada clase que se define. Un constructor es un método especial de la clase que se llama automáticamente cada vez que se crea un objeto de esa clase su función es inicializar objetos de la clase. Al crear un objeto de una clase: 1º Se reserva memoria (operador new) 2º Se inician los atributos del objeto bien a los valores indicados en la declaración o a los valores por defecto. (atributos numéricos a 0, alfanuméricos a nulo y referencias a null) 3º Se llama al constructor. Un miembro de una clase puede ser iniciado con un objeto de otra clase.
  • 16. Características de los constructores - Los constructores no tienen valor de retorno, ni siquiera void. - Su nombre es siempre el mismo que el de la clase. Su argumento implícito es el objeto que está creando. - No se hereda. - No pueden ser declarados final, static, abstract, sychronized o native.
  • 17. ENCAPSULAMIENTO  Es la propiedad que tienen los objetos, de contener tanto datos como métodos, los cuales pueden manipular o cambiar estos datos.  Consiste en separar los aspectos externos de un objeto (que pueden ser accedidos desde otros objetos) de los detalles internos de implementación del mismo.
  • 18. ENCAPSULAMIENTO  Es importante porque mediante esta propiedad, los objetos, tienen el control necesario, de la integridad de los datos contenidos en estos.  Facilidad de mantenimiento y depuración de los programas.  Los clientes de una clase sólo conocen la interfaz de la misma, es decir, conocen los prototipos de las operaciones pero no cómo están implementadas.  Por tanto, si la implementación de una clase varía, y la interfaz continúa siendo la misma, no es necesario cambiar el código de los clientes.
  • 19. COHESIÓN Es una medida de la especialización con la que cuenta un objeto dentro de un sistema, entre mas alta sea esta, es mejor. La cohesión tiene que ver con la forma en la que agrupamos unidades de software en una unidad mayor. Por ejemplo, la forma en la que agrupamos funciones en una librería, o la forma en la que agrupamos métodos en una clase, o la forma en la que agrupamos clases en una librería, etc... Se suele decir que cuanto más cohesionados estén los elementos agrupados, mejor.
  • 20. ACOPLAMIENTO El acoplamiento mide el grado de relacionamiento de un módulo con los demás. A menor acoplamiento, mejor: el módulo en cuestión será más sencillo de diseñar, programar, probar y mantener. En el diseño estructurado, se logra bajo acoplamiento reduciendo las interacciones entre procedimientos y funciones, reduciendo la cantidad y complejidad de los parámetros y disminuyendo al mínimo los parámetros por referencia y los efectos colaterales. De nuevo, el diseño orientado a objetos nos complica las cosas con sus tres tipos de módulos. A los métodos, como pasó con la cohesión, podemos analizarlos con los mismos criterios que a los módulos del diseño estructurado.
  • 21. MIEMBRO Los miembros dato Los valores de los atributos se guardan en los miembros dato o variables de instancia. Los nombres de dichas variables comienzan por letra minúscula. Vamos a crear una clase denominada Rectangulo, que describa las características comunes a estas figuras planas que son las siguientes: El origen del rectángulo: el origen o posición de la esquina superior izquierda del rectángulo en el plano determinado por dos números enteros x e y. Las dimensiones del rectángulo: ancho y alto, otros dos números enteros. class Rectangulo{ int x; int y; int ancho; int alto; //faltan las funciones miembro }
  • 22. UML Def. Lenguaje Unificado de Modelado es una notación gráfica para dibujar diagramas de conceptos de software. Existen 3 niveles de diagramas en la concepción de un sistema de software: Diagrama Conceptual (sobre el dominio del problema) Diagrama de Especificación sobre el diseño del software Diagramas de Implementación Los diagramas de especificación y de implementación tienen una fuerte conexión con el código fuente Solo se van a ver los últimos 2
  • 23. OBJETIVOS DE LOS DIAGRAMAS Diagrama de Especificación  transformación en código fuente Diagrama de Implementación  descripción de un código fuente existente En ambos casos, crear un modelo donde se elimine la ambigüedad y se dé formalidad
  • 24. NIVEL CONCEPTUAL Los diagramas conceptuales no están tan fuertemente ligados con el código fuente. No sigue reglas semánticas estrictas y por lo tanto su resultado puede ser ambiguo y sujeto a interpretación.
  • 25. EJEMPLO – NIVEL CONCEPTUAL Con la frase “un perro es un animal” Se ve que existen 2 entidades, perro y animal La relación entre las entidades sería de generalización. “Un perro es un caso de animal” El diagrama sería: Animal Perro
  • 26. EJEMPLO – NIVEL CONCEPTUAL El diagrama sugiere que el Perro es una clase de Animal, ó que el Perro es un caso especial de Animal Sin embargo, se puede pensar que el perro, como especie biológica, pertenece al reino animal ( se presta a interpretaciones) Animal Perro
  • 27. NIVEL DE ESPECIFICACIONES Public class Animal {} Public class Perro extends Animal {} Sin embargo, en el nivel de especificaciones este código tiene mas coherencia de manera que Animal y Perro están conectadas por una relación de herencia
  • 28. El fallo para reconocer el nivel de un diagrama es la fuente de errores significativos de comunicación entre programadores y analistas Un diagrama de nivel conceptual no define el código fuente, no debe de hacerlo. Un diagrama de nivel de especificaciones describe la solución del problema no tiene porqué parecerse a un diagrama conceptual
  • 29. TIPOS DE DIAGRAMAS EN UML Diagramas estáticos.- Describen la estructura lógica invariable de los elementos software representando clases, objetos, estructuras de datos y las relaciones entre ellas. Diagramas dinámicos.- Muestran como cambian las entidades software durante la ejecución, representando el flujo de ejecución. Diagramas físicos.- Muestran la estructura física invariable como archivos fuente, bibliotecas, archivos binarios o de datos y sus relaciones.
  • 31. DIAGRAMA DE OBJETOS Objetos Clase a la que pertenece el objeto Enlaces Nodos del arreglo Muestra los objetos y sus relaciones en un momento particular de ejecución del sistema
  • 32. VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS La reutilización de código:  Esta ahorra tiempo en el desarrollo de programas.  Se utiliza software que ya ha sido probado. Fácil mantenimiento y depuración de programas. Extensibilidad: posibilidad de ampliar la funcionalidad de la aplicación de manera sencilla. Modularidad y encapsulación: el sistema se descompone en objetos con unas responsabilidades claramente especificadas.
  • 33. CONCLUSION La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia, atributos éstaticos entre otros permiten, que el código sea generico de manera que sea reutilizable. Mediante las técnica aprendida en el presente curso podemos establecer una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que séran usados para el desarrollo del sofware. Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación, a personas que deseen una explicacion rápida y sencilla de lo que es la programación orientada a objetos.