Академический Документы
Профессиональный Документы
Культура Документы
Introducción
Características del lenguaje.
Variables y Tipos de Datos.
Estructuras de Control
Ciclos iterativos.
Introducción a la POO.
Introducción
Introducción (I)
Creado en 1991 por Sun Microsystems (James
Gosling) para dispositivos electrónicos:
calculadoras, microondas y la televisión
interactiva.
Escasa potencia de cálculo
Poca memoria
Distintas CPUs
Consecuencias:
Lenguaje sencillo que genera código reducido
Lenguaje que independiente de la plataforma
Introducción (II)
Lenguaje de progamación para
computadores/internet desde 1995.
Sun describe Java como “ un lenguaje simple,
orientado a Objetos, distribuido, interpretado,
robusto, seguro, de arquitectura neutral,
portable, de alto rendimiento, multihilos, y
dinámico”
Ejecución de Java como:
Aplicación independiente
Applet (dentro del navegador al cargar la página Web)
Servlet (ejecutado en servidor de internet, sin interfaz
gráfica).
Introducción (III)
JDK (Java Development Kit): programas y librerias para
desarrollar, compilar y ejecutar programas Java.
Versiones:
Java 1.0: 212 clases organizadas en 8 paquetes
Java 1.1: 504 clases, 23 paquetes. Mejoras a la JVM.
Java 1.2 (Java 2): 1520 clases, 59 paquetes. Plataforma
muy madura . Apoyado por grandes empresas: IBM,
Oracle, Inprise, Hewtlett-Packard, Netscape, Sun.
Java 1.3 (Java Enterprise Edition). Java comienza a
ser una plataforma de desarrollo profesional
??? Java MicroEdition
Características de Java
Características de Java I
Lenguaje de fácil uso orientado a objetos
Lenguaje compilado e interpretado
Facilita un entorno interpretado:
Velocidad de desarrollo (no de ejecución)
Portabilidad del código
Ejecución multitareas
Cambios dinámicos en tiempo de ejecución
Seguridad del código.
La máquina Virtual Java - JVM (I)
Es una máquina hipotética que emula por software una
máquina real. Es definida por una especificación.
Conjunto de instrucciones de máquina
(C.O.) + Operandos
Pila
Memoria
...
El compilador genera bytecodes (instrucciones de código
maquina para la JVM)
El interprete tarduce y ejecuta los bytecodes para cada
máquina específica.
Compilador e intérprete de
Java (I)
El compilador analiza la sintaxis del código fuente (con
extensión .java). Si no hay errores, genera bytecodes
> javac <Nombre>.java
javac HelloWorld.java
HelloWorld.java
ejcutar bytecode
Garbage Collection
La memoria reservada dinámicamente que No se vaya a
usar más debe ser liberada.
En otros lenguajes, esta liberación debe realizarla el propio
programador.
La JVM dispone de un proceso que rastrea las operaciones
de memoria: el Garbage Collector.
Verifica y libera la memoria que no se necesita
Se ejecuta automáticamente
Puede variar según la implementación de la JVM.
Seguridad del Código
La JVM verifica los bytecodes asegurando que:
El código se ajusta a las especificaciones de la JVM.
No hay violaciones de acceso restringido.
Los tipos de los parámetros son correctos para todo el
código.
No existen conversiones ilegales de datos (ej. de
enteros a apuntadores).
Formato de los archivos fuente
Declaración de paquete (opcional)
package <nombrePaquete>
Instrucciones de importación(opcional)
import <nombrePaquetes>
Declaración de clase o interfaz
[<mod>] class <NombreClase> {.....}
Un programa Simple
System.exit(0);
}
}
Elementos del Lenguaje
Elementos del lenguaje
Caracteristicas del lenguaje
Declaraciones
Tipos de Datos
Operadores
Estructuras de control
Clases y Objetos
Paquetes
Caracteristicas del lenguaje
Sensible a mayúsculas/misnúsculas
Comentarios
Lenguaje de formato libre
Identificadores
Palabras reservadas
Variables y constantes
Convenciones de nomenclatura
Tiene reglas sobre los tipos de datos
Sensible a
mayúsculas/minúsculas
Tipos primitivos:
boolean true o false
char unicode! (16 bits)
byte entero de 8 bits con signo.
short entero de 16 bits con signo.
int entero de 32 bits con signo.
long entero de 64 bits con signo.
float,double IEEE 754 floating point
Tipos de datos Referencia
Un tipo referencia guarda un apuntador a la dirección
donde se ubica el objeto (32 bits).
Sólo puede almacenar objetos de su propio tipo.
Ejemplo:
Cuadrado cuad1, cuad2;
Circulo circ1;
cuad1 = new Cuadrado();
circ1 = cuad1; // Error de compliación
cuad2 = cuad1’; // Ok
Todas las clases son de tipo referencia.
El valor que toma por defecto una variable de tipo
referencia es null.
Cadenas de Caracteres
La clase String permite manejar cadenas de caracteres.
El literal string debe ir entre comillas dobles “”.
Se puede crear una cadena de caracteres de dos formas:
String nombre = new String(“Pepe”);
String nombre = “Pepe”;
Para concatenar dos cadenas se usa el operador +.
No se guarda el carácter fin de cadena.
Conversiones de tipos
La conversión de tipos (casting) debe realizarse entre
tipos de la misma naturaleza: numéricos o referencia.
Al convertir un tipo a un tamaño más pequeño se puede
perder la información del los bits de mayor peso.
No hay conversión automatica con el tipo boolean!
La sintaxis es: (<tipo>) <expresion>
Ejemplo: int i = (int) 1.345;
Operadores (I)
Unarios: +. -
Aritméticos: +, -, *, /, % (resto de la división).
De Asignación: =, +=, -=, *=, %=
<var> += <exp> ó <var> = <var> + <exp>
Operadores incrementales: ++, --
Precediendo a la variable: ++<var>, --<var>
siguiendo la variable: <var>++, <var>--
relacionales: ==. !=, <, >, <=, >=, …
Operadores (II)
Operadores relacionales: == (igual). != (distinto), <, >,
<=, >=, …
Operadores booleanos: && (AND), || (OR), ! (NOT), &
(AND), | (OR).
&& y || realizan evaluación perezosa
& y | siempre evalúan los dos operadores
Equivale a:
<inicialización>
while ( expBooleana )
{
<grupoInstrucciones> ;
<actualización>;
}
Ejemplo
for( k=0; k<n; k++ ) { <s>; }
K=0
while ( k<n )
{
<s> ;
k++;
}
Ejemplo:
Circulo miCirculo;
miCirculo = new Circulo();
Acceso a los miembros de un
Objeto
A través del operador punto (.) se puede acceder tanto
a los atributos como a los métodos.
<refObjeto>.<atributo>
<refObjeto>.<metodo>()
Ejemplo:
Circulo miCirculo = new Circulo();
miCirculo.radio = 10;
miCirculo.color = azul;
miCirculo.area();
Métodos
Son el equivalente a los procedimientos de los lenguajes no
OO. Un método es un bloque de código definido dentro de
una clase que proporciona un mecanismo para realizar una
acción.
Un método tiene acceso a todos los atributos de su clase.
Un método puede invocar otros métodos
En Java no se puede definir un método dentro de otro.
La ejecución de todos los programas se inicia en el método
main.
Definición de métodos (I)
Sintaxis para la definición de un método:
<tipoRetorno> <nombreMetodo>(< parametros >...)
{ <instrucciones>...}
class A { …main…
int x; {
void metodo (int y){ int arg = 4;
int x=2; A obj = new A();
y = 3*x + y - x; obj.x = 1;
…println(y); obj.metodo(arg);
} …println(arg);
} …println(obj.x);
}
La referencia this