Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

conceptos de programacion orientada a objetos, Apuntes de Programación Java

encontraremos las definiciones mas importante de la poo

Tipo: Apuntes

2018/2019

Subido el 19/09/2019

sistemas-huatulco-croc-seccion-64
sistemas-huatulco-croc-seccion-64 🇲🇽

5

(1)

1 documento

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Programación Orientada a Objetos
Isidro González Caballero
(Universidad de Oviedo)
Técnicas de Comp. en Física
Santander, 08/11/2010
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga conceptos de programacion orientada a objetos y más Apuntes en PDF de Programación Java solo en Docsity!

Programación Orientada a Objetos

Isidro González Caballero (Universidad de Oviedo) Técnicas de Comp. en Física Santander, 08/11/

Introducción

 Los problemas suelen tener varias soluciones posibles.  (^) En programación existen diversas metodologías que nos ayudan a enfrentar un problema.  (^) Cada metodología tiene diversos lenguajes que las soportan.

  • (^) Algunos lenguajes soportan varias metodologías. Metodología Lenguaje Estructurada Fortran, C, Pascal, Basic Orientada a objetos ( OOP ) C++ , Java, Smalltalk Orientada a eventos VisualBasic

Ventajas de la POO

Proximidad de los conceptos modelados

respecto a objetos del mundo real

Facilita la reutilización de código

  • (^) Y por tanto el mantenimiento del mismo 

Se pueden usar conceptos comunes durante

las fases de análisis, diseño e implementación

Disipa las barreras entre el qué y el cómo

Desventajas de la POO

Mayor complejidad a la hora de entender el

flujo de datos

  • (^) Pérdida de linealidad 

Requiere de un lenguaje de modelización de

problemas más elaborado:

  • (^) Unified Modelling Language (UML)
  • (^) Representaciones gráficas más complicadas

Objeto y Clase

Un objeto es algo de lo que hablamos y que podemos manipular  (^) Existen en el mundo real (o en nuestro entendimiento del mismo) Una clase describe los objetos del mismo tipo  (^) Todos los objetos son instancias de una clase  (^) Describe las propiedades y el comportamiento de un tipo de objetos

Clase

Atributos Operaciones

Objeto:Clase

Atributo1=valor Atributo2=valor ...

Conceptos OOP: Abstracción

 (^) Nos permite trabajar con la complejidad del mundo real

  • (^) Resaltando los aspectos relevantes de los objetos de una clase
  • (^) Ocultando los detalles particulares de cada objeto  (^) Separaremos el comportamiento de la implementación  (^) Es más importante saber qué se hace en lugar de cómo se hace: Un sensor de temperatura
  • (^) Se define porque...  (^) mide la temperatura  (^) nos muestra su valor  (^) se puede calibrar...
  • (^) No sabemos... (no nos importa)  (^) cómo mide la temperatura  (^) de qué está hecho  (^) cómo se calibra

Conceptos OOP: Encapsulamiento

Ninguna parte de un sistema complejo debe

depender de los detalles internos de otra.

Complementa a la abstracción

Se consigue:

  • (^) Separando la interfaz de su implementación
  • (^) Ocultando la información interna de un objeto
  • (^) Escondiendo la estructura e implementación de los métodos (algoritmos).
  • (^) Exponiendo solo la forma de interactuar con el objeto

Conceptos OOP: Encapsulamiento

Vemos que se puede...  (^) Construir con:

  • (^) 4 puntos (y restricciones)
  • (^) 1 punto y 2 vectores
  • (^) 1 punto, 1 vector, 1 ángulo y 1 lado  (^) Transformaciones:
  • (^) Escalado
  • (^) Rotación
  • (^) Desplazamiento  (^) Dibujar No vemos...  (^) Como está representado internamente
  • (^) 4 puntos?
  • (^) 1 punto y 2 vectores?
  • (^) ...  (^) Como se modifica su escala
  • (^) Guardando el factor?
  • (^) Escalando en el momento?  (^) Idem para rotación, traslación, etc... Ejemplo: Un paralelogramo

Conceptos OOP: Modularidad

Ejemplo: Simulación detector de AAEE Puede dividirse en los siguientes módulos...

1. Geometría : Describe el detector físicamente (forma, materiales, tamaño) 2. Partículas : Las partículas cuyas interacciones nos interesan 3. Procesos : Aquí enlazamos la información del detector (materia) con las propiedades de las partículas. 4. ...  (^) Podríamos dividir el módulo de procesos en procesos electromagnéticos , procesos hadrónicos , ...  (^) Lo mismo podríamos hacerlo con las partículas: leptones , hadrones , ...

Conceptos POO: Jerarquía

Es una clasificación u ordenamiento de las

abstracciones

Hay dos jerarquías fundamentales:

  • (^) Estructura de clases:  (^) Jerarquía “ es un/a ”  (^) Relaciones de herencia
  • (^) Estructura de objetos:  (^) Jerarquía “ parte de ”  (^) Relaciones de agregación  (^) Está implementada de manera genérica en la estructura de clases

Conceptos OOP: Tipo

Es el reforzamiento del concepto de clase

Objetos de tipo diferente no pueden ser

intercambiados

El C++ y el Java son lenguajes fuertemente

“tipeados”

Ayuda a corregir errores en tiempo de

compilación

  • (^) Mejor que en tiempo de ejecución

Conceptos OOP: Persistencia

 Propiedad de un objeto de trascender en el tiempo y en el espacio a su creador (programa que lo generó)  (^) No se trata de almacenar sólo el estado de un objeto sino toda la clase (incluido su comportamiento)  No está directamente soportado por el C++

  • (^) Existen librerías y sistemas completos (OODBMS) que facilitan la tarea
  • (^) Frameworks (entornos) como ROOT lo soportan parcialmente (reflex)  El concepto de serialización del Java está directamente relacionado con la persistencia

Relación de Asociación

 (^) Relación más general  (^) Denota una dependencia semántica  (^) Es bidireccional  Primer paso para determinar una relación más compleja Ejemplo: Relación entre un producto y una venta. Cualquier venta está asociada a un producto, pero no es, ni forma parte de, ni posee ningún producto… al menos en una primera aproximación.  (^) Cardinalidad: multiplicidad a cada lado

  • (^) Uno a uno: Venta-Transacción
  • (^) Uno a muchos: Producto-Venta
  • (^) Muchos a muchos: Comprador-Vendedor

Relación de Herencia

¡Relación característica de la OOP!

Puede expresar tanto especialización

como generalización

Evita definir repetidas veces

las características comunes a

varias clases

Una de las clases comparte la estructura

y/o el comportamiento de otra(s)

clase(s).

También se denomina relación “ es un/a ”

( is a )