SlideShare una empresa de Scribd logo
1 de 35
Programación Orientada
a Objetos
Juan Miguel González García
Consultor en TI
La Programación Orientada a Objetos
Es un paradigma de programación, esto es, una
filosofía o forma de pensar, con una teoría y una
metodología definidas.
Un lenguaje orientado a objetos es un lenguaje de
programación que permite el diseño de aplicaciones
orientadas a objetos.
Un lenguaje de programación tradicional, basa su
funcionamiento en el concepto de Procedimiento o
Función; esta filosofía, sin embargo, descompone el
programa en Objetos.
Los Objetos
Entidades del mundo Real que poseen un conjunto de
Propiedades o Atributos, y un conjunto de Métodos u
Acciones, mediante los cuales muestran su
comportamiento.
Estas Entidades se encuentran Relacionadas unas con
otras por medio del intercambio de Mensajes y responden a
estos mensajes ejecutando ciertas Acciones.
En términos técnicos: Es la representación en un programa
de un Concepto, y contiene información necesaria para
abstraerlo: datos que describen sus atributos y operaciones
que pueden realizarse sobre los mismos.
Los Mensajes entre Objetos
Un objeto sin comunicación con el mundo exterior no es
de utilidad. La idea no es crear islas de objetos si no
objetos relacionados.
Los objetos interactúan entre ellos mediante mensajes.
Cuando un objeto A quiere que otro objeto B ejecute una
de sus funciones o procedimientos miembro(métodos del
Objeto B), el objeto A manda un mensaje al objeto B.
Constan de 3 partes a saber
El objeto Destinatario
El método o la acción a Ejecutar
El (los) parámetro (s) necesarios para ejecutar el método
Identificando Objetos
Los objetos generalmente se ubican en las
siguientes categorías:
Cosas Tangibles
avión, auto, producto, insumo.
Roles
gerente, cliente, vendedor, auxiliar, empleado.
Organizaciones
empresa, colegio, proveedor.
Cosas Intangibles
vuelos, servicios, materias, programas.
Clases
Los objetos pueden ser varios de un mismo tipo, o
como se dice normalmente, de una misma clase.
Por ejemplo, si se posee un Automóvil, este
Automóvil es una Instancia de la Clase de Objetos
Carro. Todo Carro tiene atributos (color, cuatro
ruedas, puertas) y algunos métodos (arrancar, frenar,
apagar).
Podemos decir que es como una Plantilla que define
los atributos y los métodos que son comunes para
todos los objetos de un cierto tipo.
Diagrama de Clases
El propósito de este diagrama es el de representar
los objetos fundamentales del sistema, es decir los
que percibe el usuario y con los que espera tratar
para completar su tarea.
La clase define el alcance de un conjunto de objetos,
cada objeto pertenece a una clase y estos objetos se
crean por instanciación de las clases.
Formato del Diagrama de Clases
Nombre de la Clase
Atributos de la Clase
Operaciones de la Clase
Atributos I
Tipo.- Depende del Lenguaje de Programación empleado.
Valor Inicial.- Valor que posee el Atributo al crear el
Objeto.
Visibilidad.- Se relaciona con el Encapsulamiento.
Multiplicidad.- Determina si un atributo de estar o no, y si
posee un único valor o una lista de valores.
Ordenamiento.- Si lleva un orden o no.
Capacidad de Cambio.- Atributos con valores constantes.
Modificadores.- Los atributos pueden se de Clase,
Derivado, Volátil, Transitorio.
Atributos II - Visibilidad
El Encapsulamiento presenta tres ventajas
básicas
Se protegen los datos de accesos indebidos
El acoplamiento entre las clases de disminuye
Favorece la modularidad y el mantenimiento
Los atributos de una clase no deben ser
manipulables directamente por el resto de los
objetos.
Atributos III – Niveles de Encapsulamiento
(-) Privado. Es el más fuerte, esta parte es
totalmente invisible desde fuera de la clase.
(~) Package. Solo es visible dentro del mismo
paquete.
(#) Protegido. Están visibles para las clases
amigas y las derivadas de la original.
(+) Publico. Son visibles a otras clases, en el caso
de los atributos, se rompe el principio de
encapsulamiento.
Atributos IV - Multiplicidad
Valor Descripción
1 El atributo debe tener un único valor
0..1 El atributo puede o no tener un valor
0..*
El atributo puede tener varios valores o ninguno
1..*
El atributo puede tener varios valores, pero debe
tener al menos uno
* El atributo puede tener varios valores
M..N El atributo puede tener entre M y N valores
Atributos V - Modificadores
Clase o Estático. El atributo
aparece subrayado, no es necesario
contar con un objeto para ejecutarlo.
Derivado. Es calculable a partir de
otros atributos.
Transitorio. Tendrá valor solo
durante una porción de la ejecución.
Volátil. No se persiste.
Operaciones
Es un servicio que una instancia de la clase
puede realizar.
Tipo Devuelto. Depende del Lenguaje de
Programación utilizado.
Parámetros. Además del tipo, puede
especificarse si son In, Out o InOut.
Visibilidad. Se relaciona con el
encapsulamiento.
Modificadores. Una operación puede ser de
clase, abstracta, query o constructor.
Ejemplo de Clase
BEGIN CLASS
Punto
ATTRIBUTES
X : Integer
Y : Integer
METHODS
setX(nuevaX : Integer) :
Integer
getX()
setY(nuevaY : Integer) :
Integer
getY()
END
Public Class Punto
-X: Integer
-Y: Integer
+setX(nuevaX: Integer) :
Integer
+getX()
+setY(nuevaY: Integer) :
Integer
+getY()
Características
Abstracción
Herencia
Encapsulamiento
Polimorfismo
Abstracción
Consiste en aislar un elemento de su
contexto o del resto de los elementos que lo
acompañan.
En programación, el término se refiere al
énfasis en el "¿qué hace?" más que en el
"¿cómo lo hace?" (característica de Caja
Negra).
Herencia
El mecanismo de herencia permite definir
nuevas clases partiendo de otras ya
existentes.
Las clases que derivan de otras heredan
automáticamente todo su comportamiento,
pero además pueden introducir
características particulares propias que las
diferencian.
Ejemplo de Herencia
BEGIN CLASS
Circulo
EXTENDS
Punto
PROPERTIES
Radio : double
METHODS
setRadio(nuevoRadi
o : Integer) : Integer
getRadio()
END
Public Class Circulo Extends Punto
-X: Integer
-Y: Integer
-Radio : Double
+setX(nuevaX: Integer) : Integer
+getX()
+setY(nuevaY: Integer) : Integer
+getY()
+setRadio(nuevoRadio : Integer) :
Integer
+getRadio()
Superclase/Subclase
Si la clase A hereda de la clase B, entonces B es la superclase
de A, por lo que A es subclase de B.
Los programadores pueden implementar las llamadas
superclases abstractas, que definen comportamientos
genéricos.
Las clases abstractas definen e implementan parcialmente
comportamientos, pero gran parte de estos comportamientos
no se definen ni se implementan totalmente.
El propósito de una clase abstracta es servir de modelo base
para la creación de otras clases derivadas, pero cuya
implantación depende de las características particulares de
cada una de ellas.
Encapsulamiento
Ocultamiento del estado, es decir, de los datos
miembro de un objeto de manera que sólo se
pueda cambiar mediante las operaciones
definidas para ese objeto.
Solamente se muestra lo que se necesita. Es
un empaquetamiento de los atributos y
métodos dentro de un objeto.
Polimorfismo
Los comportamientos pueden ser
identificados bajo el mismo nombre
pero procesan información de
manera diferente de acuerdo al objeto
que lo contenga.
Estos comportamientos permiten
que los métodos puedan ser
reemplazados en una clase derivada.
Ejemplo de Polimorfismo
Objeto 2
Función Sumar (a,b)
Sumar = a + b
Fin Función
Objeto 1
Objeto2.sumar (a,b)
Objeto3.sumar
(a,b,c)
Objeto 3
Función Sumar
(a,b,c)
Sumar = a + b + c
Fin Función
El objeto 1 invoca a 2 métodos que llevan el
mismo nombre pero funcionan diferente en
cada objeto.
Estructura de un Objeto
Un objeto puede considerarse
como una especie de cápsula
dividida en tres partes:
Campos y Propiedades (Atributos)
Métodos
Relaciones
Modificadores de Acceso
Permiten controlar la forma de acceder a los
atributos y métodos encapsulados dentro de una
clase.
PUBLICO: Que puede se accedido desde fuera de la
clase. Se representa por (+).
PRIVADO: Que NO puede ser accedido desde fuera de
la clase. Solo puede ser utilizado internamente en la
clase. Se representa por ( - ).
PROTEGIDO: Puede ser heredado por otra clase pero
en esta ultima se convierten en elementos Privados.
Se representa por ( # ).
Campos y Propiedades
Los Campos y Propiedades distinguen un objeto determinado de los
restantes que forman parte de la misma organización y tiene valores
que dependen del Atributo de que se trate. Estos Atributos pueden ser
heredados a sus descendientes en la organización.
Pueden ser Constantes, aquellos cuyo valor no cambia; y Variables,
aquellos que sus valores cambiarán dependiendo del Método que lo
realice.
Atributos Propios. Asociados directamente al objeto.
Atributos Heredados. Están definidos en un objeto diferente,
antepasado de éste (padre, "abuelo", etc.). A veces estos Atributos se
llaman Atributos Miembro porque el objeto las posee por el simple
hecho de ser miembro de una clase.
Métodos
Los Métodos son las operaciones que pueden
realizarse sobre el objeto, que normalmente estarán
incorporados en forma de Sub Programas (Funciones
o Procedimientos) que el objeto es capaz de ejecutar y
que también pone a disposición de sus descendientes
a través de la herencia.
Métodos Propios. Están incluidos dentro de la
cápsula del objeto.
Métodos Heredados. Están definidos en un objeto
diferente, antepasado de éste (padre, "abuelo", etc.).
A veces estos métodos se llaman métodos miembro
porque el objeto los posee por el simple hecho de ser
miembro de una clase.
Constructores
Son Procedimientos de construcción de una clase.
Se emplea la palabra reservada New, para instanciar
un Objeto de una Clase.
En la mayoría de los Lenguajes de Programación, el
nombre del Constructor es el nombre de la Clase.
Los constructores pueden o no incluir Parámetros,
siempre que se quiera crear un Objeto con todos los
Atributos que posee.
Destructores
Su objetivo es destruir las clases
creadas.
Este destructor se ejecuta toda vez
que el recolector de basura libera la
memoria ocupada por un objeto
cuyos atributos ya no se emplean.
Interfaces
Es una colección de Prototipos de
Métodos y Propiedades.
Proporciona en forma declarativa, una
lista de propiedades y métodos que
posteriormente pueden se codificados
dentro de una clase.
Las Interfaces no contienen código, sino la
implementación de las Propiedades y
Métodos que pueden ser programadas en
una clase que herede la Interfaz.
Relaciones
Las relaciones permiten que el
objeto se inserte en la organización y
están formadas esencialmente por
punteros a otros objetos.
Es un
Parte de
Tiene un
Relación Es un…
Relación de especialización.
Un objeto contiene la definición
de otro y añade comportamientos
adicionales.
Ejemplo de relación ES UN(A)…
Public Class Punto
-X: Integer
-Y: Integer
+setX(nuevaX: Integer) :
Integer
+getX()
+setY(nuevaY: Integer) :
Integer
+getY()
Public Class Circulo Extends
Punto
-X: Integer
-Y: Integer
-Radio : Double
+setX(nuevaX: Integer) : Integer
+getX()
+setY(nuevaY: Integer) : Integer
+getY()
+setRadio(nuevoRadio : Integer) :
Integer
+getRadio()
Relación Parte de…
Objetos compuestos por otros, relación de
contenencia. Un objeto es parte de otro
cuando conserva su independencia.
Public Class Logo
-circulo : Circulo
-triangulo : Triangulo
+setPunto(donde:Integer):Integer
Clase Circulo Clase Triangulo
Relación Tiene un…
Esta relación es justamente la inversa de
la relación Parte-de.
Public Class Logo
-circulo : Circulo
-triangulo : Triangulo
+setPunto(donde:Integer):Integer
Clase Circulo Clase Triangulo

Más contenido relacionado

La actualidad más candente

Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAngel Laverde ID
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadoresClara Patricia Avella Ibañez
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLGabriel Cortez
 
Modelo objeto semántico
Modelo objeto semánticoModelo objeto semántico
Modelo objeto semánticoReicerBlanco
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisisinnovalabcun
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
Base de datos 2(tema 3)
Base de datos 2(tema 3)Base de datos 2(tema 3)
Base de datos 2(tema 3)Edwin Arias
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definicionesBoris Salleg
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 

La actualidad más candente (20)

Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Diagrama de Secuencia
Diagrama de SecuenciaDiagrama de Secuencia
Diagrama de Secuencia
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Modelo objeto semántico
Modelo objeto semánticoModelo objeto semántico
Modelo objeto semántico
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
Base de datos 2(tema 3)
Base de datos 2(tema 3)Base de datos 2(tema 3)
Base de datos 2(tema 3)
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Modelamiento con uml definiciones
Modelamiento con uml definicionesModelamiento con uml definiciones
Modelamiento con uml definiciones
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 

Similar a Programación Orientada a Objetos

Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosEdward Ropero
 
[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 objetosronnyme21
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaMarcos Acosta
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjuliomancerotroya
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosmaikitejeda
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAgapito26
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosalexmoncada21
 
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
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptmelvis mendieta
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónjovy2905
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosJonathan Marcillo
 

Similar a Programación Orientada a Objetos (20)

Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetosProgramación i 1. diseño orientado a objetos
Programación i 1. diseño orientado a objetos
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
[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
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
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
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptm
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de información
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Más de Consultor Independiente

Reporte sobre Introducción a la Tecnología Web
Reporte sobre Introducción a la Tecnología WebReporte sobre Introducción a la Tecnología Web
Reporte sobre Introducción a la Tecnología WebConsultor Independiente
 

Más de Consultor Independiente (20)

Bd access
Bd accessBd access
Bd access
 
Conceptos Generales de Bases de Datos
Conceptos Generales de Bases de DatosConceptos Generales de Bases de Datos
Conceptos Generales de Bases de Datos
 
La Prevision
La PrevisionLa Prevision
La Prevision
 
Teoría General de Sistemas
Teoría General de SistemasTeoría General de Sistemas
Teoría General de Sistemas
 
Reporte sobre Introducción a la Tecnología Web
Reporte sobre Introducción a la Tecnología WebReporte sobre Introducción a la Tecnología Web
Reporte sobre Introducción a la Tecnología Web
 
Introducción a la Tecnología Web
Introducción a la Tecnología WebIntroducción a la Tecnología Web
Introducción a la Tecnología Web
 
Esquema Estándar de un Sitio Web
Esquema Estándar de un Sitio WebEsquema Estándar de un Sitio Web
Esquema Estándar de un Sitio Web
 
Esquema de Petición Estática
Esquema de Petición EstáticaEsquema de Petición Estática
Esquema de Petición Estática
 
Esquema de Petición Dinámica
Esquema de Petición DinámicaEsquema de Petición Dinámica
Esquema de Petición Dinámica
 
Esquema conexioninternet
Esquema conexioninternetEsquema conexioninternet
Esquema conexioninternet
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
 
Conceptos Generales sobre Internet
Conceptos Generales sobre InternetConceptos Generales sobre Internet
Conceptos Generales sobre Internet
 
Uso de los Estilos de Word
Uso de los Estilos de WordUso de los Estilos de Word
Uso de los Estilos de Word
 
Trabajando con Tablas
Trabajando con TablasTrabajando con Tablas
Trabajando con Tablas
 
Funciones de Excel
Funciones de ExcelFunciones de Excel
Funciones de Excel
 
Antología de Excel
Antología de ExcelAntología de Excel
Antología de Excel
 
7. funciones de busqueda y referencia
7. funciones de busqueda y referencia7. funciones de busqueda y referencia
7. funciones de busqueda y referencia
 
11. funciones logicas
11. funciones logicas11. funciones logicas
11. funciones logicas
 
10. funciones financieras
10. funciones financieras10. funciones financieras
10. funciones financieras
 
9. funciones estadisticas
9. funciones estadisticas9. funciones estadisticas
9. funciones estadisticas
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 

Último (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 
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)
 
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...
 
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
 
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
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
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
 
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
 

Programación Orientada a Objetos

  • 1. Programación Orientada a Objetos Juan Miguel González García Consultor en TI
  • 2. La Programación Orientada a Objetos Es un paradigma de programación, esto es, una filosofía o forma de pensar, con una teoría y una metodología definidas. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Un lenguaje de programación tradicional, basa su funcionamiento en el concepto de Procedimiento o Función; esta filosofía, sin embargo, descompone el programa en Objetos.
  • 3. Los Objetos Entidades del mundo Real que poseen un conjunto de Propiedades o Atributos, y un conjunto de Métodos u Acciones, mediante los cuales muestran su comportamiento. Estas Entidades se encuentran Relacionadas unas con otras por medio del intercambio de Mensajes y responden a estos mensajes ejecutando ciertas Acciones. En términos técnicos: Es la representación en un programa de un Concepto, y contiene información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.
  • 4. Los Mensajes entre Objetos Un objeto sin comunicación con el mundo exterior no es de utilidad. La idea no es crear islas de objetos si no objetos relacionados. Los objetos interactúan entre ellos mediante mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones o procedimientos miembro(métodos del Objeto B), el objeto A manda un mensaje al objeto B. Constan de 3 partes a saber El objeto Destinatario El método o la acción a Ejecutar El (los) parámetro (s) necesarios para ejecutar el método
  • 5. Identificando Objetos Los objetos generalmente se ubican en las siguientes categorías: Cosas Tangibles avión, auto, producto, insumo. Roles gerente, cliente, vendedor, auxiliar, empleado. Organizaciones empresa, colegio, proveedor. Cosas Intangibles vuelos, servicios, materias, programas.
  • 6. Clases Los objetos pueden ser varios de un mismo tipo, o como se dice normalmente, de una misma clase. Por ejemplo, si se posee un Automóvil, este Automóvil es una Instancia de la Clase de Objetos Carro. Todo Carro tiene atributos (color, cuatro ruedas, puertas) y algunos métodos (arrancar, frenar, apagar). Podemos decir que es como una Plantilla que define los atributos y los métodos que son comunes para todos los objetos de un cierto tipo.
  • 7. Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar su tarea. La clase define el alcance de un conjunto de objetos, cada objeto pertenece a una clase y estos objetos se crean por instanciación de las clases.
  • 8. Formato del Diagrama de Clases Nombre de la Clase Atributos de la Clase Operaciones de la Clase
  • 9. Atributos I Tipo.- Depende del Lenguaje de Programación empleado. Valor Inicial.- Valor que posee el Atributo al crear el Objeto. Visibilidad.- Se relaciona con el Encapsulamiento. Multiplicidad.- Determina si un atributo de estar o no, y si posee un único valor o una lista de valores. Ordenamiento.- Si lleva un orden o no. Capacidad de Cambio.- Atributos con valores constantes. Modificadores.- Los atributos pueden se de Clase, Derivado, Volátil, Transitorio.
  • 10. Atributos II - Visibilidad El Encapsulamiento presenta tres ventajas básicas Se protegen los datos de accesos indebidos El acoplamiento entre las clases de disminuye Favorece la modularidad y el mantenimiento Los atributos de una clase no deben ser manipulables directamente por el resto de los objetos.
  • 11. Atributos III – Niveles de Encapsulamiento (-) Privado. Es el más fuerte, esta parte es totalmente invisible desde fuera de la clase. (~) Package. Solo es visible dentro del mismo paquete. (#) Protegido. Están visibles para las clases amigas y las derivadas de la original. (+) Publico. Son visibles a otras clases, en el caso de los atributos, se rompe el principio de encapsulamiento.
  • 12. Atributos IV - Multiplicidad Valor Descripción 1 El atributo debe tener un único valor 0..1 El atributo puede o no tener un valor 0..* El atributo puede tener varios valores o ninguno 1..* El atributo puede tener varios valores, pero debe tener al menos uno * El atributo puede tener varios valores M..N El atributo puede tener entre M y N valores
  • 13. Atributos V - Modificadores Clase o Estático. El atributo aparece subrayado, no es necesario contar con un objeto para ejecutarlo. Derivado. Es calculable a partir de otros atributos. Transitorio. Tendrá valor solo durante una porción de la ejecución. Volátil. No se persiste.
  • 14. Operaciones Es un servicio que una instancia de la clase puede realizar. Tipo Devuelto. Depende del Lenguaje de Programación utilizado. Parámetros. Además del tipo, puede especificarse si son In, Out o InOut. Visibilidad. Se relaciona con el encapsulamiento. Modificadores. Una operación puede ser de clase, abstracta, query o constructor.
  • 15. Ejemplo de Clase BEGIN CLASS Punto ATTRIBUTES X : Integer Y : Integer METHODS setX(nuevaX : Integer) : Integer getX() setY(nuevaY : Integer) : Integer getY() END Public Class Punto -X: Integer -Y: Integer +setX(nuevaX: Integer) : Integer +getX() +setY(nuevaY: Integer) : Integer +getY()
  • 17. Abstracción Consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (característica de Caja Negra).
  • 18. Herencia El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento, pero además pueden introducir características particulares propias que las diferencian.
  • 19. Ejemplo de Herencia BEGIN CLASS Circulo EXTENDS Punto PROPERTIES Radio : double METHODS setRadio(nuevoRadi o : Integer) : Integer getRadio() END Public Class Circulo Extends Punto -X: Integer -Y: Integer -Radio : Double +setX(nuevaX: Integer) : Integer +getX() +setY(nuevaY: Integer) : Integer +getY() +setRadio(nuevoRadio : Integer) : Integer +getRadio()
  • 20. Superclase/Subclase Si la clase A hereda de la clase B, entonces B es la superclase de A, por lo que A es subclase de B. Los programadores pueden implementar las llamadas superclases abstractas, que definen comportamientos genéricos. Las clases abstractas definen e implementan parcialmente comportamientos, pero gran parte de estos comportamientos no se definen ni se implementan totalmente. El propósito de una clase abstracta es servir de modelo base para la creación de otras clases derivadas, pero cuya implantación depende de las características particulares de cada una de ellas.
  • 21. Encapsulamiento Ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que sólo se pueda cambiar mediante las operaciones definidas para ese objeto. Solamente se muestra lo que se necesita. Es un empaquetamiento de los atributos y métodos dentro de un objeto.
  • 22. Polimorfismo Los comportamientos pueden ser identificados bajo el mismo nombre pero procesan información de manera diferente de acuerdo al objeto que lo contenga. Estos comportamientos permiten que los métodos puedan ser reemplazados en una clase derivada.
  • 23. Ejemplo de Polimorfismo Objeto 2 Función Sumar (a,b) Sumar = a + b Fin Función Objeto 1 Objeto2.sumar (a,b) Objeto3.sumar (a,b,c) Objeto 3 Función Sumar (a,b,c) Sumar = a + b + c Fin Función El objeto 1 invoca a 2 métodos que llevan el mismo nombre pero funcionan diferente en cada objeto.
  • 24. Estructura de un Objeto Un objeto puede considerarse como una especie de cápsula dividida en tres partes: Campos y Propiedades (Atributos) Métodos Relaciones
  • 25. Modificadores de Acceso Permiten controlar la forma de acceder a los atributos y métodos encapsulados dentro de una clase. PUBLICO: Que puede se accedido desde fuera de la clase. Se representa por (+). PRIVADO: Que NO puede ser accedido desde fuera de la clase. Solo puede ser utilizado internamente en la clase. Se representa por ( - ). PROTEGIDO: Puede ser heredado por otra clase pero en esta ultima se convierten en elementos Privados. Se representa por ( # ).
  • 26. Campos y Propiedades Los Campos y Propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen del Atributo de que se trate. Estos Atributos pueden ser heredados a sus descendientes en la organización. Pueden ser Constantes, aquellos cuyo valor no cambia; y Variables, aquellos que sus valores cambiarán dependiendo del Método que lo realice. Atributos Propios. Asociados directamente al objeto. Atributos Heredados. Están definidos en un objeto diferente, antepasado de éste (padre, "abuelo", etc.). A veces estos Atributos se llaman Atributos Miembro porque el objeto las posee por el simple hecho de ser miembro de una clase.
  • 27. Métodos Los Métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de Sub Programas (Funciones o Procedimientos) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia. Métodos Propios. Están incluidos dentro de la cápsula del objeto. Métodos Heredados. Están definidos en un objeto diferente, antepasado de éste (padre, "abuelo", etc.). A veces estos métodos se llaman métodos miembro porque el objeto los posee por el simple hecho de ser miembro de una clase.
  • 28. Constructores Son Procedimientos de construcción de una clase. Se emplea la palabra reservada New, para instanciar un Objeto de una Clase. En la mayoría de los Lenguajes de Programación, el nombre del Constructor es el nombre de la Clase. Los constructores pueden o no incluir Parámetros, siempre que se quiera crear un Objeto con todos los Atributos que posee.
  • 29. Destructores Su objetivo es destruir las clases creadas. Este destructor se ejecuta toda vez que el recolector de basura libera la memoria ocupada por un objeto cuyos atributos ya no se emplean.
  • 30. Interfaces Es una colección de Prototipos de Métodos y Propiedades. Proporciona en forma declarativa, una lista de propiedades y métodos que posteriormente pueden se codificados dentro de una clase. Las Interfaces no contienen código, sino la implementación de las Propiedades y Métodos que pueden ser programadas en una clase que herede la Interfaz.
  • 31. Relaciones Las relaciones permiten que el objeto se inserte en la organización y están formadas esencialmente por punteros a otros objetos. Es un Parte de Tiene un
  • 32. Relación Es un… Relación de especialización. Un objeto contiene la definición de otro y añade comportamientos adicionales.
  • 33. Ejemplo de relación ES UN(A)… Public Class Punto -X: Integer -Y: Integer +setX(nuevaX: Integer) : Integer +getX() +setY(nuevaY: Integer) : Integer +getY() Public Class Circulo Extends Punto -X: Integer -Y: Integer -Radio : Double +setX(nuevaX: Integer) : Integer +getX() +setY(nuevaY: Integer) : Integer +getY() +setRadio(nuevoRadio : Integer) : Integer +getRadio()
  • 34. Relación Parte de… Objetos compuestos por otros, relación de contenencia. Un objeto es parte de otro cuando conserva su independencia. Public Class Logo -circulo : Circulo -triangulo : Triangulo +setPunto(donde:Integer):Integer Clase Circulo Clase Triangulo
  • 35. Relación Tiene un… Esta relación es justamente la inversa de la relación Parte-de. Public Class Logo -circulo : Circulo -triangulo : Triangulo +setPunto(donde:Integer):Integer Clase Circulo Clase Triangulo