características generales del lenguaje javacbustaca/docencia/poo-2016-01/... · en 1993 se quiso...
TRANSCRIPT
Tema 2 Java - CincoSOFT
2
Temario
Historia del desarrollo de Java
Ventajas sobre otros lenguajes O.O.
applets vs. aplicaciones
Ambiente básico JDK
Vistazo inicial a las características de Java: Variables y expresiones aritméticas
Tipos de Estructuras de control
4
Origen de Java
Proyecto Green de la SUN (1991) para desarrollar software controlador
de electrodomésticos (dirigido por James Gosling)
se requería un lenguaje compacto, confiable, OO, independiente de la
plataforma
C++ fue descartado (por ser complejo y no confiable) ==> se definió Java
en 1993 se quiso incorporar la tecnología de video por demanda
en 1993 apareció NCSA Mosaic 1.0 ==> de 1993 - 1995 Java se redefinió
para Internet
SUN (FirstPerson Inc.) siguió trabajando en aplicar Java como controlador
de televisión interactiva y de otros electrodomésticos
Java se popularizó como lenguaje general para aplicaciones modernas
2 plataformas dominantes para desarrollar aplicaciones empresariales: Java
EE (usa lenguaje Java), .NET (usa lenguaje C# principalmente)
Tema 2 Java - CincoSOFT
6
Java tiene las virtudes de C++
pero no sus defectos:
– Como C++, Java es compacto, expresivo, OO,
multithreading
– A diferencia de C++ :
Java obliga a usar el paradigma OO
no soporta apuntadores
recolección automática de basura
no permite variables globales ni funciones sueltas
ofrece objetos arreglos de dimensión arbitraria
menos alternativas en tipos y mayor chequeo de tipos
no hay preprocesamiento (#include) : dinámicamente se
importan las clases necesarias
código portable (independiente de cualquier plataforma)
menores costos en desarrollo y mantenimiento
Tema 2 Java - CincoSOFT
7
programa.java
compilador javac
programa.class en código bytecode para
la máquina JVM (Java Virtual Machine)
JRTS
(Java Run-Time System)
en el browser de la plataforma 1
interpretación del
programa.class
en la plataforma 1
JRTS para plataforma 2
JIT
(Just-In-Time compiler)
programa.exe en código
nativo de la plataforma 2
ejecución
ejecución del programa.exe en la
plataforma 2
Portabilidad de Java: se compila una vez
y se ejecuta en cualquier plataforma
Tema 2 Java - CincoSOFT
8
– el bytecode Java es neutral respecto a las arquitecturas => no puede explotarlas
– fuerte chequeo de tipos y manejo de excepciones
– ausencia de apuntadores => no hay referencias inválidas de memoria
– el JRTS (Java Run Time System) :
chequea que el bytecode esté bien construido
separa clases del JRTS || clases del usuario || clases que vienen por la red
– el web browser pone barreras de seguridad a las clases que vienen por la red en
forma de applets (en principio, no pueden consultar ni modificar archivos del
escritorio)
– mecanismos avanzados ofrecidos por Java:
encripción de datos antes de transmitirlos
generación de llaves y de firmas digitales para un archivo applet (javakey)
definición de políticas de seguridad basadas en la auntenticación de applets
Seguridad ofrecida por Java:
Tema 2 Java - CincoSOFT
10
Interacción de un applet
o de una aplicación Java
con múltiples servidores
escritorio
con browser y disco
servidor Web
y de Aplicaciones
aplicación 1
Java
applet
BD
servidor de BD
y de recursos
aplicación 3
Java
BD
servidor de BD
y de recursos
aplicación 2
Java
aplicación 4
JAVA
Tema 2 Java - CincoSOFT
11
Usos de los Applets y de las
Aplicaciones Java
Los applets permiten :
Mostrar información al interior de una empresa
Mostrar al público información sobre productos
servir de “Front end” para las aplicaciones operativas de la empresa
Comercio electrónico
Traer las aplicaciones de oficina a los escritorios livianos
Las aplicaciones Java :
Residen en escritorios pesados (de la empresa) o en los servidores
Pueden interactuar con Bases de Datos o con otras aplicaciones
JAVA de otros servidores
Pueden realizar servicios de procesamiento para los applets
Pueden interactuar con aplicaciones antiguas o heterogéneas
Tema 2 Java - CincoSOFT
13
sitio internet donde se obtiene última versión del JDK (actualmente JDK 1.8): http://www.oracle.com/technetwork/java/javase/downloads/index.html
contenido del directorio jdk resultado de la instalación:
jdk1.8\bin : herramientas de desarrollo
jdk1.8\jre : soporte de ejecución básico (JVM)
jdk1.8\lib : librerías de soporte
jdk1.8\demo : ejemplos
jdk1.8\include: soporte para programar métodos
nativos.
tutorial oficial: http://download.oracle.com/javase/tutorial/
CLASSPATH: variable del sistema que especifica dónde buscar las
clases de JAVA en compilación y ejecución
ej de valor: C:/jdk/lib;C:/misclases
Instalación, directorios y
configuración del JDK :
Tema 2 Java - CincoSOFT
14
clase: modela un tipo de objeto
paquete: conjunto de clases
paquetes utilitarios:
• java.lang : clases básicas (importado por defecto)
• java.applet : manejo de applets
• java.io : manejo de E/S sobre archivos
• java.net : servicios de conectividad (sockets TCP/IP, URL)
• java.util : manejo de objetos flexibles: Lista, Vector, Mapa..
• java.awt : manejo de objetos de interacción gráfica
• java.sql : interacción con Bases de Datos (JDBC)
• java.rmi: interacción con objetos remotos (RMI)
• java.beans : manejo de componentes
• java.security : servicios de seguridad
• y muchos más
Principales paquetes que ofrecen las
librerías del JDK
Tema 2 Java - CincoSOFT
15
javac : compila applets o aplicaciones java
javac [opciones] MiClase.java
genera un archivo .class por cada clase definida en
MiClase.java
otro ej: javac javeriana\edu\co\miproy\MiClase.java
nota: importa la diferencia entre mayúsculas y minúsculas en
el nombre del archivo
principales opciones :
-verbose (da información al compilar)
-d directorio (donde se quieren dejar los .class)
-classpath ruta (donde buscar las clases, en lugar de lo
que indique CLASSPATH)
Principales herramientas del JDK :
Tema 2 Java - CincoSOFT
16
java : interpreta (ejecuta) una aplicación java
java [opciones] Miclase [argumentos]
debe existir el archivo Miclase.class
otro ej: java javeriana.edu.co.miproy.MiClase
principales opciones :
-verbose (da información sobre clases cargadas)
-classpath ruta (donde buscar las clases, en
lugar de lo que indique CLASSPATH)
Tema 2 Java - CincoSOFT
17
javadoc : genera la documentación de una aplicación java
javadoc javeriana\edu\co\miproy\*.java
muchas opciones :
-visibilidad
-paquetes a incluir o excluir
-apariencia
Tema 2 Java - CincoSOFT
18
appletviewer : interpreta un applet java sin requerir ningún
navegador
appletviewer [opciones] mihoja.html
appletviewer [opciones]
http://host/dir/mihoja.html
mihoja.html indica el archivo Miapplet.class que
quiere invocarse
principal opción :
-debug (permite hacer depuración con jdb)
Tema 2 Java - CincoSOFT
19
jdb : herramienta de depuración
javap : analiza archivos java informando cúales son sus clases, métodos y atributos
javadoc : herramienta que genera documentación HTML a partir de una aplicación o applet java
javah : herramienta que genera archivos .h en lenguaje C para la interacción entre aplicaciones java y aplicaciones C
rmic : herramienta que genera módulos stub y skeleton para la interacción RMI entre objetos java distribuidos
jar : comprime o descomprime archivos java
javaKey : genera firma digital para un applet
etc.....
Tema 2 Java - CincoSOFT
20
Ejercicio “Hola Mundo”
Desarrollar con JDK una aplicación Hola1.java que imprima
por la salida estándar, el mensaje :
“Hola Mundo: esta es la primera aplicacion
java de Fulanito de Tal”
la clase debe llamarse Hola1.class
archivos .class deben quedar en subdirectorio clases
ejemplo de código:
class Hola1 {
public static void main (String[] args) {
System.out.println (“Hola mundo...”);
}
}
Tema 2 Java - CincoSOFT
21
Parámetros para una aplicación java
En la línea de comandos de java pueden ir argumentos:
java miclase cadena1 cadena2 ....
El método main tiene como parámetro una arreglo de cadenas :
class miclase {
public static void main(String[] args ) {
....
}
}
args.length es el número n de argumentos
args[i] es la cadena usada como argumento i-ésimo
(se cuenta i desde 0 hasta n-1)
Tema 2 Java - CincoSOFT
22
Ejercicio “EcoJDK”
Desarrollar con JDK una aplicación Eco1.java que imprima por
la salida estándar los argumentos de la línea de comandos,
imprimiendo uno por línea:
la clase debe llamarse Eco1.class
archivos .class deben quedar en subdirectorio clases
debe chequear que haya argumentos
Conceptos de Memoria Variables
– Una variable es un espacio en la memoria del PC
– Cada variable tiene un nombre, un tipo , un tamaño y un valor
24 Programación Orientada a Objetos
Declaración e inicialización de variables de
Memoria Para declarar una variable:
int number1;
Para inicializar una variable:
number1 = 45;
Se puede declarar e inicializar al mismo tiempo:
int number2 = 72;
int sum = number1 + number2;
25 Programación Orientada a Objetos
Expresiones Aritméticas
Programación Orientada a Objetos 26
Operación Operador Expresión algebráica Expresión Java
Adición + f + 7 f + 7
Substración – p – c p - c
Multiplicación * bm b * m
División / x / y ó ó x ÷ y x / y
La división entre enteros trunca el resultado:
7 / 5 es igual a 1
Operador módulo (%) obtiene el residuo
7 % 5 es igual a 2
Precedencia de los operadores
Algunos operadores aritméticos actúan antes que otros, por ejemplo, la
multiplicación antes de la adición
Coloque paréntesis para evitar ambigüedades y facilitar la lectura de la
expresión
Programación Orientada a Objetos 27
a + b + c / 3
( a + b + c ) / 3
Tipos primitivos de Java
Ejemplos
– double d1 = 123.4;
– double d2 = 1.234e2;
– float f1 = 123.4f;
– short edad;
Ver tamaños en el tutorial:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
Valores por defecto para Tipos primitivos de
Java
Al crear las variables ellas se inicializan con un valor
por defecto solo si son atributos
Constantes
Si se quiere que un valor permanezca sin cambiar
durante la ejecución de un programa, se debe usar
una constante.
– Utilice la palabra reservada final para definir
una constante y asigne un valor en su
declaración.
Programación Orientada a Objetos 30
Tipos de Estructuras de Control
En Java las sentencias de un programa se ejecutan normalmente en el orden en que son escritas.
Los programas Java se componen de tres tipos de estructuras de control – Estructuras de secuencia
– Estructuras de selección
– Estructuras de repetición
32 Programación Orientada a Objetos
Estructuras de selección
– Sentencia if Sentencia de selección simple
– Sentencia if else Sentencia de selección doble
– Sentencia switch Sentencia de selección múltiple
33 Programación Orientada a Objetos
Estructuras de repetición
– También conocidas como ciclos
– Ejecutan de manera repetida una acción mientras la condición del ciclo sea verdadera
– Sentencia while Ejecuta las acciones de su cuerpo 0 ó más veces
– Sentencia do while Ejecuta las acciones de su cuerpo 1 ó más veces
– Sentencia for Ejecuta las acciones de su cuerpo 0 ó más veces
34 Programación Orientada a Objetos