SlideShare uma empresa Scribd logo
1 de 42
Técnicas avanzadas de programación Fundamentos de programación orientada a objetos
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción
¿Qué es un método? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],“ Primero, no admitir como verdadera cosa alguna que no supiese con evidencia [...]. No comprender en mis juicios nada más que lo que se presentase tan clara y distintamente, que no hubiese ninguna ocasión de ponerlo en duda” “ Dividir cada una de las dificultades que examine en cuantas partes fuese posible y en cuantas requiere su mejor solución” “ Conducir ordenadamente mis pensamientos empezando por los objetos más simples y más fáciles de conocer, para ir ascendiendo poco a poco, gradualmente, hasta el conocimiento de los más compuestos” “ Hacer en todo unos recuentos tan integrales y unas revisiones tan generales que llegase a estar seguro de no omitir nada” (Descartes, Discurso del método)
Cambio de mentalidad Métodos Métodos Métodos Procedimiento 1 Procedimiento 2 Datos Datos Objeto Datos Objeto Datos Paradigma orientado a objetos: Paradigma tradicional: Objeto
Objetivos de la ingeniería (I) ,[object Object],[object Object],[object Object],[object Object]
Objetivos de la ingeniería (II) ,[object Object],[object Object],[object Object],[object Object]
Principios y reglas de la ingeniería OO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principios y objetivos Encapsulamiento: Utilizamos los servicios de un objeto a través de su interfaz externo Generalización: Centrarnos en lo genérico y eliminar u ocultar detalles (el cómo) Modularidad Descomponemos de forma lógica CORRECCION ROBUSTEZ EXTENSIBILIDAD REUSABILIDAD Menor coste Mayor calidad Jerarquía Ordenamos por niveles de herencia y composición
Generalización o abstracción
Generalización: mantener la coherencia (I) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalización: mantener la coherencia (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalización: generalizar datos y métodos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],class FIGURA { Point Posicion; ..... } class FIGURA { int pos_x; int pos_y; ..... }
Generalización: amplia cobertura del servicio ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalización: minimizar información global ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalización: gestión de excepciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalización: optimizar con precaución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Encapsulamiento
Encapsulamiento: introducción (I) ,[object Object],[object Object]
Encapsulamiento: introducción (II) ,[object Object],[object Object],class CUBO { .... Rotar( GRADO g); }; CUBO::Rotar( GRADO g) { .... } (C++)
Encapsulamiento: introducción (III) ,[object Object],[object Object],[object Object]
Encapsulamiento de clases ,[object Object],[object Object],[object Object],Método 1 Método 2 Datos Objeto Mensajes Los métodos públicos de la clase son el  interfaz de la clase
Encapsulamiento: ocultar estructuras y algoritmos internos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modularidad
Modularidad: introducción (I) ,[object Object],[object Object],Analizador Fondos Fondo Inversión Interfaz Usuario Recomendación Fondos de  Inversión estudiar alternativas obtener datos análisis datos para presentación
Modularidad: introducción (II) ,[object Object],Coste Número de módulos Coste por interfaces Coste por módulo
Modularidad: introducción (III) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modularidad: bajo acoplamiento (I) ,[object Object],[object Object],[object Object],[object Object],[object Object],fabrica.solicitar_pedido( Fec, Hora, CodComer, Cantidad, PVP, ModoEntrega ) fabrica.solicitar_pedido( pedido nuevo_pedido )
Modularidad: bajo acoplamiento (II) ,[object Object],[object Object],[object Object],[object Object]
Modularidad: comprensibilidad ,[object Object],[object Object]
Modularidad: trazabilidad ,[object Object],[object Object],[object Object],Especificación de requisitos Análisis Diseño Programación
Modularidad: arquitectura en capas ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modularidad: arquitectura en tres capas ,[object Object],[object Object],[object Object],[object Object],[object Object]
Jerarquía
Jerarquía: introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Persona Alumno Profesor Coche Motor 1
Jerarquía: herencia y redefinición ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],CLASE PROFESOR  (redefinición parcial) public void mostrar() { super.mostrar(); System.out.println( “Horas lectivas: " + horas_lectivas); } CLASE EMPLEADO  (redefinición completa) public void mostrar() { System.out.print( nombre + ", " ); System.out.println( salario_bruto); } empleado nombre salario_bruto mostrar() profesor horas_lectivas mostrar()
Jerarquía: herencia y polimorfismo ,[object Object],[object Object],empleado[]  personal = new empleado[x]; personal[0] = new administrativo(...); personal[1] = new profesor(...); personal[0].mostrar(); personal[1].mostrar();
Jerarquía: herencia y ligadura dinámica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],rectángulo void dibujar() circulo void dibujar() figura void dibujar()
Jerarquía: herencia y clases abstractas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Clases abstractas en diferentes lenguajes Eiffel deferred  class Figura feature dibujar is  deferred  end ... Java abstract  class Figura { abstract void dibujar(); ...} C++ class Figura { public:  virtual void dibujar() = 0; ...
Jerarquía: agregación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplos de agregación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
vnslgars
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmas
alithu1
 
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
program visual
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
May Ibarra
 

Mais procurados (20)

M O D U L A R I D A D
M O D U L A R I D A DM O D U L A R I D A D
M O D U L A R I D A D
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismo
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
POO
POOPOO
POO
 
3 paradigmas
3 paradigmas3 paradigmas
3 paradigmas
 
Estructura de datos presentacion y sesion 1
Estructura de datos presentacion y sesion 1Estructura de datos presentacion y sesion 1
Estructura de datos presentacion y sesion 1
 
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
Programación orientada a objetos (Dominguez Gonzalez, Jose Antonio & Perez He...
 
Orientacion a objetos cristina cachero
Orientacion a objetos   cristina cacheroOrientacion a objetos   cristina cachero
Orientacion a objetos cristina cachero
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Taller
TallerTaller
Taller
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONAL
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 
1.2 modularidad
1.2 modularidad1.2 modularidad
1.2 modularidad
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
 

Semelhante a Informatica

Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
Jorge Garcia
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
Jose Sanchez
 
Actividad proyecto algoritmia_de_ignacio_matilla_iraola
Actividad proyecto algoritmia_de_ignacio_matilla_iraolaActividad proyecto algoritmia_de_ignacio_matilla_iraola
Actividad proyecto algoritmia_de_ignacio_matilla_iraola
Imatilla
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
Marcos Acosta
 
Anderson cadena
Anderson cadenaAnderson cadena
Anderson cadena
teres58
 

Semelhante a Informatica (20)

ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
 
Ed java
Ed javaEd java
Ed java
 
Ed java
Ed javaEd java
Ed java
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lec11 metodos
Lec11 metodosLec11 metodos
Lec11 metodos
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Unidad i poo avanzada
Unidad i   poo avanzadaUnidad i   poo avanzada
Unidad i poo avanzada
 
Guía básica para programar en PSeint
Guía básica para programar en PSeintGuía básica para programar en PSeint
Guía básica para programar en PSeint
 
Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)Desarrollo a aplicaciones . net (1)
Desarrollo a aplicaciones . net (1)
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
 
Actividad proyecto algoritmia_de_ignacio_matilla_iraola
Actividad proyecto algoritmia_de_ignacio_matilla_iraolaActividad proyecto algoritmia_de_ignacio_matilla_iraola
Actividad proyecto algoritmia_de_ignacio_matilla_iraola
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Guia Pseint 2016
Guia Pseint 2016Guia Pseint 2016
Guia Pseint 2016
 
Guia pseint 2016
Guia pseint 2016Guia pseint 2016
Guia pseint 2016
 
Guia pseint 2016
Guia pseint 2016Guia pseint 2016
Guia pseint 2016
 
Conceptos estructuras de datos
Conceptos estructuras de datosConceptos estructuras de datos
Conceptos estructuras de datos
 
Framework by Marcos Acosta
Framework by Marcos AcostaFramework by Marcos Acosta
Framework by Marcos Acosta
 
Lp pract2006
Lp pract2006Lp pract2006
Lp pract2006
 
Anderson cadena
Anderson cadenaAnderson cadena
Anderson cadena
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
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
FagnerLisboa3
 

Último (15)

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
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
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Informatica

  • 1. Técnicas avanzadas de programación Fundamentos de programación orientada a objetos
  • 2.
  • 4.
  • 5. Cambio de mentalidad Métodos Métodos Métodos Procedimiento 1 Procedimiento 2 Datos Datos Objeto Datos Objeto Datos Paradigma orientado a objetos: Paradigma tradicional: Objeto
  • 6.
  • 7.
  • 8.
  • 9. Principios y objetivos Encapsulamiento: Utilizamos los servicios de un objeto a través de su interfaz externo Generalización: Centrarnos en lo genérico y eliminar u ocultar detalles (el cómo) Modularidad Descomponemos de forma lógica CORRECCION ROBUSTEZ EXTENSIBILIDAD REUSABILIDAD Menor coste Mayor calidad Jerarquía Ordenamos por niveles de herencia y composición
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Clases abstractas en diferentes lenguajes Eiffel deferred class Figura feature dibujar is deferred end ... Java abstract class Figura { abstract void dibujar(); ...} C++ class Figura { public: virtual void dibujar() = 0; ...
  • 41.
  • 42.