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


P.O.O en Java, Diapositivas de Programación Java

Algunas caracteristicas mas avanzadas

Tipo: Diapositivas

2018/2019

Subido el 03/12/2019

david-santos-bsh
david-santos-bsh 🇪🇸

9 documentos

1 / 51

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Projecte de Programació
Projecte de Programació
Conceptos de Orientación
a Objetos en Java
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Vista previa parcial del texto

¡Descarga P.O.O en Java y más Diapositivas en PDF de Programación Java solo en Docsity!

Projecte de Programació

Conceptos de Orientación

a Objetos en Java

Historia: El año 1967 los noruegos Ole-Johan Dahl y Kristen

Nygaard inventan el lenguaje Simula-67 , especialmente diseñado

para hacer simulaciones de sistemas físicos complejos. Por primera

vez aparecen los conceptos de clase, subclase, instancias de clases Conceptos Orientación a Objetos

The Smalltalk demonstration showed three amazing features. One was how computers could be networked; the second was how object-oriented programming worked. But Jobs and his team paid little attention to these attributes because they were so amazed by the third feature, the graphical interface that was made possible by a bitmapped screen. “It was like a veil being lifted from my eyes,” Jobs recalled. “I could see what the future of computing was destined to be.”

Steve Jobs (p. 137)

Walter Isaacson

Simon & Schuster, 2011

Conceptos Orientación a Objetos

La Orientación a Objetos entiende la computación como resultado de la interacción entre objetos que son capaces de comunicarse La OO no es algo específico de un LP, sino una forma de entender el desarrollo del software Ventajas:

  • Reutilización y reciclaje de código: Gran número de librerías, facilidad para construirlas
  • Encapsulamiento: En diversos sentidos, no hace falta conocer la implementación para utilizar objetos y tampoco se puede acceder al estado de los objetos
  • Escala muy bien
  • Facilidad de mantenimiento Conceptos Orientación a Objetos

Ejemplo Implementación version TADs main () { A, B: Individuo; x: Flores; C: Floristeria:

... obtener/informar A,B,x,C enviarFlores (A,B,x,C); } void enviarFlores (A,B: Individuo, x: Flores, C:Floristeria){ d: Direccion; n: Nombre; d := obtenerDireccion(B); n := obtenerNombre(A); if C.tipo == “cultivadora” ordenarAFloristeriaCultivadoraEnviarFlores(C,n,x,d); else ordenarAFloristeriaNOCultivadoraEnviarFlores(C,n,x,d); } Conceptos Orientación a Objetos

Solución “humana”:

C llamará a una floristería D de la ciudad donde vive B para encargarle el pedido. Y D probablemente pedirá a un empleado E que las lleve físicamente. Los que cultivan las flores, a su vez, tendrán un equipo de jardineros. En cualquier caso, a A le trae sin cuidado lo que haga C. Abstrayendo:

  1. El mecanismo para resolver el problema ha sido encontrar un agente/objeto apropiado (C) y pasarle un mensaje conteniendo la petición. Es responsabilidad de C satisfacerla. Para ello, C ha seguido algún método. A puede no saber los detalles de este método: están ocultos
  2. La solución al problema ha requerido de la participación de muchos individuos. En general, un programa OO se estructura como una comunidad de agentes (los objetos ), que interactúan entre ellos. Cada objeto tiene un rol , proporciona un servicio o ejecuta una acción que es usada por otros miembros de la comunidad Ejemplo Conceptos Orientación a Objetos

Ejemplo Implementación version Orientación a Objetos (2/2) clase Floristeria { … características generales de TODAS las floristerías } clase FloristeriaCultivadora es una subclase de Floristeria { void enviarFlores(n: Nombre, x: Flores, d: Direccion) { …el equivalente a ordenarAFloristeriaCultivadoraEnviarFlores } } clase FloristeriaNOCultivadora es una subclase de Floristeria { void enviarFlores(n: Nombre, x: Flores, d: Direccion) { …el equivalente a ordenarAFloristeriaNOCultivadoraEnviarFlores } } Conceptos Orientación a Objetos

Mensajes i métodos : En un programa OO la acción comienza con el envío de un mensaje (invocación de método) de un objeto a otro objeto Diferencias entre paso de mensajes y llamadas a procedimientos:

  • Siempre hay un receptor del mensaje
  • Los mensajes pueden tener diferentes interpretaciones en función del receptor... → Polimorfismo …y a veces éste no se conoce hasta que se ejecuta el programa → Dynamic binding/dispatch Conceptos Orientación a Objetos

Y qué sacamos de usar objetos? 1.- Encapsulamiento :

énfasis en los procesos

énfasis en crear módulos (objetos) con estado y comportamiento,

con una interficie clara y definida y ocultación de la implement.

Ejemplo: Utilizar objetos iteradores para controlar bucles (en lugar

de hacerlo con enteros)

Ejemplo: No sólo utilizar objetos como estructuras de datos, tambiénmcomo generadores de estas estructuras o como vistas de estas

estructuras

Conceptos Orientación a Objetos

Y qué sacamos de usar objetos? 2.- Simulación de la realidad :

Todo programa es una formalización de un fragmento del mundo

interpretado de acuerdo a las herramientas (p.ej. lenguaje de

programación) que tiene el programador. En el caso del OOP los

modelos que hacemos del mundo (los programas) són más

similares, o se ajustan mejor, a cómo pensamos el mundo (al

menos

en occidente)*

  • Classes vs. Prototypes, Some Philosophical and Historical Observations, A.Taivalsaari, cap. 2 en Prototype-Based Programming J.Noble, A.Taivalsaari & I.Moore (eds.) Springer 1999 Conceptos Orientación a Objetos

Pilares básicos de la OOP

Los mecanismos que los lenguajes orientados a objetos ponen a

nuestra disposición para explotar las ventajas de la OOP se

pueden representar en un triángulo

Conceptos Orientación a Objetos

Java

Entorno Básico

En PROP: Java SE 8 (jdk-8*)

1) Compilación: *.java (código fuente)

*.class ( bytecodes o código neutro) javac nombreFichero.java -> nombreFichero.class

La compilación es incremental (basta con compilar la clase que

contiene el programa principal). No obstante, siempre se puede

hacer:

javac *.java Java

Entorno Básico

2) Ejecución: el código neutro se ejecuta en un intérprete, la JVM

java [-cp ClassPath] nombreFichero [parámetros]

Flag -cp: dónde buscar los .class:

  • Si la var de entorno CLASSPATH está asignada, las clases han

de estar en el CLASSPATH o declaradas con el –cp

  • Si la var de entorno CLASSPATH no está asignada, las clases

han de estar en el directorio actual de trabajo o en el -cp

Se pueden montar bibliotecas de clases en ficheros .jar:

java -jar nombreFicheroJar.jar

java –cp .;C:\junit-4.5.jar nombreFichero

Java