Escolar Documentos
Profissional Documentos
Cultura Documentos
DuocUC
¿Qué es Java?
La simplicidad de Java
Tipos de Java
Historia
Línea de tiempo
(Fuente: PC Magazine, vol. 17, No. 7, 7 Abril de 1998).
Enero 1991
Java nace como Oak, con el objetivo de permitir el desarrollo de aplicaciones para
electrodomésticos. Uno de los personajes más relevantes del “Green Team” es
James Gosling.
Marzo 1993
SUN enfoca Oak hacia un proyecto de televisión interactiva de la Time Warner.
Silicon Graphics se gana la propuesta.
Agosto 1994
Se desecha el proyecto, y se pierde la propuesta.
Julio 1994
Sun orienta el potencial de Oak hacia Internet, donde se requiere correr
aplicaciones en estaciones en las que no se tiene el control sobre su configuración,
apuntando la tecnología hacia su actual funcionalidad.
Mayo 1995
Java es oficialmente presentado en la Sun World 1995. Netscape es la primera
empresa en adherirse al ambiente Java. Sun libera una versión alfa de su
navegador de Internet llamado Hot Java.
Diciembre 1995
Symantec libera el primer ambiente de desarrollo Java para Windows 95 y Windows
NT, llamado Symantec Café, el que tiene un éxito inmediato.
Enero 1996
Sun forma JavaSoft, para el desarrollo de productos basados en Java y para
trabajar con otros desarrolladores.
Enero 1996
Sun libera el ambiente de desarrollo Java 1.0 (JDK 1.0). Incluye el Java Applet
View, el compilador de Java y la primera JVM (JRE).
Febrero 1997
Sun libera JDK 1.1, que incluye la especificación para Java Beans.
Abril 1997
Sun anuncia Personal Java orientado a desarrollar aplicaciones en dispositivos del
hogar y oficina.
Arquitectura
La arquitectura de Java consta de dos grandes piezas conocidas bajo las siglas JDK
(Java Development Enviroment) y JRE (Java Runtime Enviroment), quienes tienen
distintas responsabilidades a la hora de compilar y ejecutar un programa Java.
JDK
Es el encargado de proveer las herramientas necesarias para llevar a cabo la
COMPILACIÓN (Archivo.java) del código fuente Java y transformarlo en Byte Code
(Archivo.class).
Algunos incluyen otras piezas tales como editores de texto sensible y herramientas
de debug (Depuración, búsqueda de errores), estos ambientes reciben el nombre
de IDE (Integrated Development Enviroment), en este curso utilizaremos BlueJ.
JRE
Es el ambiente que provee las herramientas necesarias para llevar a cabo la
EJECUCIÓN de un Byte Code. Es donde se encuentra la JVM, además de un módulo
conocido como Cargador de Clases y un Intérprete de Java.
Programa Cargador de
Fuente en clases
Java (.java)
Intérprete de
Compilador de Java
Java (JDK)
JDK JRE
JVM
Programa
Compilado en
Java Byte
Sistema Operativo
Code (.class) (SO)
Conceptos
Evento: Un suceso en el sistema (tal como una interacción del usuario con la
máquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. También se puede definir como
evento, a la reacción que puede desencadenar un objeto, es decir la acción que
genera.
Mensaje: Una comunicación dirigida a un objeto, que le ordena que ejecute uno de
sus métodos con ciertos parámetros asociados al evento que lo generó.
Estado interno: Es una propiedad invisible de los objetos, que puede ser
únicamente accedida y alterada por un método del objeto, y que se utiliza para
indicar distintas situaciones posibles para el objeto (o clase de objetos).
Características
Animal
Nivel Abstracción: 3
Perro Gato
Nivel Abstracción: 1
Herencia: Como en la vida real, la herencia es el legado o cualidad que nos dejan
nuestros antecesores o personas mayores (en la mayoría de los casos), en Java
sufre una leve modificación y se dice que es el mecanismo en el cual “un Padre
hereda (extends) cualidades a un Hijo” y esas cualidades son nada más que
atributos o métodos, en otras palabras código Java, por esta razón la herencia se
utiliza para ordenar nuestro esquema de clases y para la reutilización de código.
Por ejemplo recordemos el esquema anterior basándonos en la herencia y se podría
traducir de la siguiente manera:
Eso quiere decir que todas los atributos y métodos que tiene implementada la clase
Animal se encuentran, también, en la clase Mamífero y que a su vez todas las
propiedades y métodos de la clase Mamífero se encuentran en la clase Perro.
- Encender (Público)
- Apagar (Público)
- Energizar la ampolleta (Privado)
- Desenergizar la ampolleta (Privado)
Polimorfismo: Se dice que dos objetos son polimórficos cuando poseen una
interfaz común (generalmente una clase abstracta) pero que al momento de
heredar y sobrescribir los métodos tienen un comportamiento distinto.
Este término es el más complicado de entender y generalmente se le da menos
importancia, pero es uno de los más poderosos ya que permite tener una alta
cohesión y un bajo acoplamiento de los modelos de clases.
Por ejemplo, tenemos una clase abstracta llama Figura que tiene un método
implementado llamado Dibujar Contorno, de esta clase extienden dos llamadas
Triangulo y Cuadrado en ambas se sobrescribe el método de la clase padre y se
implementa el necesario para cumplir con el objetivo: Dibujar la figura
correspondiente. A simple vista nos damos cuenta que ambas clases son
polifórmicas ya que ambas heredan de la clase Figura, ambas sobrescribieron el
método Dibujar Contorno y al llamar al mismo método pero en clases distintas
producen resultado completamente distintos (en este caso un triángulo y un
cuadrado respectivamente).
Cohesión: Que todas las clases tengan un fin en común y lógico, por ejemplo en
una clase Auto se debería implementar atributos y métodos que me permitan
acelerar, frenar, doblar (Izq. y Der.) y NO que se preocupe de los datos
pertenecientes al seguro. Un buen diseño siempre busca mantener una ALTA
COHERSIÓN.