Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 1 Que Es Java
Clase 1 Que Es Java
DuocUC
Unidad I Clase N 1
Qu es Java?
No es solo un lenguaje de programacin, si no que una PLATAFORMA para el
desarrollo de aplicaciones.
Es completamente orientado a objetos (OO). Usa una sintaxis conocida, tomando
sus estructuras sintcticas del lenguaje C++, adems, omite algunos conceptos
complejos de programacin como el manejo de memoria a bajo nivel (Punteros),
eliminando de raz la fuente de muchos problemas en las aplicaciones, problemas
casi siempre de un muy alto costo de correccin debido a su complejidad.
La plataforma Java se compone de los siguientes elementos:
-
Marzo 2008
Unidad I Clase N 1
Tipos de Java
J2SE/JSE Java Standard Edition, orientado al desarrollo de aplicaciones de
escritorio (similares a VB) y, lo ms importante, se utiliza en la creacin de librera
para ser utilizadas en los distintos tipos de Java.
J2EE/JEE Java Enterprise Edition, como su nombre lo dice est orientado al
desarrollo de sistemas empresariales, consta de una serie de normas que
determinan patrones y comportamientos, orientado fuertemente a aplicaciones
Web. Es en este tipo donde aparecen elementos como JSP, Servlet, Applet, EJB,
entre otros.
J2ME/JME Java Micro Edition, orientado al desarrollo de aplicaciones en
dispositivos mviles como celulares, GPS, PALM, PocketPC, etc.
Marzo 2008
Unidad I Clase N 1
Historia
Lnea 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
electrodomsticos. Uno de los personajes ms relevantes del Green Team es
James Gosling.
Marzo 1993
SUN enfoca Oak hacia un proyecto de televisin 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 configuracin,
apuntando la tecnologa 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 versin 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 especificacin para Java Beans.
Abril 1997
Sun anuncia Personal Java orientado a desarrollar aplicaciones en dispositivos del
hogar y oficina.
JAVA HA VUELTO A SU ORIGEN!
Marzo 2008
Unidad I Clase N 1
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
COMPILACIN (Archivo.java) del cdigo fuente Java y transformarlo en Byte Code
(Archivo.class).
Algunos incluyen otras piezas tales como editores de texto sensible y herramientas
de debug (Depuracin, bsqueda 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
EJECUCIN de un Byte Code. Es donde se encuentra la JVM, adems de un mdulo
conocido como Cargador de Clases y un Intrprete de Java.
Programa
Fuente en
Java (.java)
Cargador de
clases
Intrprete de
Java
Compilador de
Java (JDK)
JRE
JDK
JVM
Programa
Compilado en
Java Byte
Code (.class)
Sistema Operativo
(SO)
Marzo 2008
Unidad I Clase N 1
Marzo 2008
Unidad I Clase N 1
Caractersticas
Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de
programacin o lenguaje le definen como "orientado a objetos", pero hay un
consenso general en que las caractersticas siguientes son las ms importantes:
Abstraccin: Es el proceso de generalizacin o agrupamiento de objetos, es decir,
es el proceso en el cual se intenta mirar el modelo de objetos desde un nivel ms
alto buscando un objeto que contenga de forma generalizada a otros.
Por ejemplo, imaginemos que estamos en casa sentados viendo TV de pronto
nuestra atencin se centra en nuestros perros (para este caso de nombre Pillin y
Camila), vamos a aplicar el concepto de abstraccin e intentemos llevar a Pillin y
Camila a un diagrama OO.
Pillin y Camila son objetos (tienen caractersticas distintas, como color, tamao,
etc.) si quisiramos representar a Pillin y Camila en un nivel ms abstracto
deberamos decir que son de la clase Perro, ahora si queremos subir un nivel de
abstraccin ms podramos decir que la clase Perro y la clase Gato (que es una
abstraccin de las mascotas de mi vecino llamados Luna y Estrella) corresponden a
la clase Mamfero y si quisiramos generalizar an ms subiendo otro nivel de
abstraccin podramos decir que la clase Mamfero extiende (extends) de la clase
Animal.
Animal
Nivel Abstraccin: 3
Nivel Abstraccin: 2
Reptil
Nivel Abstraccin: 1
Nivel Abstraccin: 0
Pillin
Ave
Mamfero
Perro
Gato
Camila
Luna
Estrella
Marzo 2008
Unidad I Clase 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 mayora de los casos), en Java
sufre una leve modificacin y se dice que es el mecanismo en el cual un Padre
hereda (extends) cualidades a un Hijo y esas cualidades son nada ms que
atributos o mtodos, en otras palabras cdigo Java, por esta razn la herencia se
utiliza para ordenar nuestro esquema de clases y para la reutilizacin de cdigo.
Por ejemplo recordemos el esquema anterior basndonos en la herencia y se podra
traducir de la siguiente manera:
La clase Perro extiende de la clase Mamfero, quien a su vez extiende de la clase
Animal.
Eso quiere decir que todas los atributos y mtodos que tiene implementada la clase
Animal se encuentran, tambin, en la clase Mamfero y que a su vez todas las
propiedades y mtodos de la clase Mamfero se encuentran en la clase Perro.
La clase Perro posee atributos y mtodos de la clase Animal?
R: Si, al hacer herencia se heredan todos los atributos y mtodos inclusive los ya
heredados anteriormente.
La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados de objetos
preexistentes.
Marzo 2008
Unidad I Clase N 1
Encender
Apagar
Energizar la ampolleta
Desenergizar la ampolleta
(Pblico)
(Pblico)
(Privado)
(Privado)
Marzo 2008
Unidad I Clase N 1
Polimorfismo: Se dice que dos objetos son polimrficos cuando poseen una
interfaz comn (generalmente una clase abstracta) pero que al momento de
heredar y sobrescribir los mtodos tienen un comportamiento distinto.
Este trmino es el ms complicado de entender y generalmente se le da menos
importancia, pero es uno de los ms poderosos ya que permite tener una alta
cohesin y un bajo acoplamiento de los modelos de clases.
Por ejemplo, tenemos una clase abstracta llama Figura que tiene un mtodo
implementado llamado Dibujar Contorno, de esta clase extienden dos llamadas
Triangulo y Cuadrado en ambas se sobrescribe el mtodo 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
polifrmicas ya que ambas heredan de la clase Figura, ambas sobrescribieron el
mtodo Dibujar Contorno y al llamar al mismo mtodo pero en clases distintas
producen resultado completamente distintos (en este caso un tringulo y un
cuadrado respectivamente).
Cohesin: Que todas las clases tengan un fin en comn y lgico, por ejemplo en
una clase Auto se debera implementar atributos y mtodos que me permitan
acelerar, frenar, doblar (Izq. y Der.) y NO que se preocupe de los datos
pertenecientes al seguro. Un buen diseo siempre busca mantener una ALTA
COHERSIN.
Acoplamiento: Es la interdependencia que existe entre clases, esto ocurre
normalmente cuando una clase necesita saber demasiados detalles internos de otra
clase para su buen funcionamiento, es decir rompe con el esquema del
encapsulamiento y produce que la mantencin del sistema sea tediosa y complicada
(no es el principio de Java). En un buen diseo mientras ms BAJO ACOPLAMIENTO
mejor.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo
natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica
cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificacin por quien no tenga derecho a
acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder
a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno
de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso
directo a los datos internos del objeto de una manera controlada y limitando el
grado de abstraccin. La aplicacin entera se reduce a un agregado o
rompecabezas de objetos.
Marzo 2008