Publicado el 14 de Enero del 2017
1.332 visualizaciones desde el 14 de Enero del 2017
244,3 KB
93 paginas
Creado hace 19a (19/10/2004)
Curso de Programación JAVA
Fco. Javier Alcalá Casado
Contenidos
Bibliografía
Introducción
Características de Java
Tipos de datos y operadores
Control de flujo
Programación orientada a objetos
Arrays
Características avanzadas de la orientación a objetos
Características avanzadas del lenguaje
Excepciones
Entrada/salida
Clases útiles
Threads
1
Bibliografía
Java in a nutshell: a desktop quick reference
D. Flanagan. Ed. O’Reilly
Muy completo
The Java tutorial: object-oriented programming for the Internet
M. Campione. Ed. Addison-Wesly
Programación del lenguaje
Core packages.
J. Gosling. Ed. Addison-Wesley
Manual de referencia
The Java language specification
J. Gosling. Ed. Addison-Wesley
Lenguaje y manual de referencia
http://java.sun.com/j2se/1.4/docs/api/index.html
Referencia actualizada por SUN Microsystems
Introducción
Fco. Javier Alcalá Casado
2
Introducción (I)
Creado en 1991 por Sun Microsystems para
electrodomésticos:
ß Escasa potencia de cálculo
ß Poca memoria
ß Distintas CPUs
Consecuencias:
ß Lenguaje sencillo que genera código reducido
ß Código neutro independiente de la CPU (máquina virtual)
Lenguaje de programación para ordenadores desde 1995
Introducción (II)
Sun describe Java como un lenguaje “simple, orientado a
objetos, distribuido, interpretado, robusto, seguro, de
arquitectura neutra, portable, de altas prestaciones,
multitarea y dinámico”
Similar en sintaxis a C/C++ y en semántica a SmallTalk
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)
JDK (Java Development Kit): programas y librerías para
desarrollar, compilar y ejecutar programas Java
3
Características de Java
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 multitarea
Cambios dinámicos en tiempo de ejecución
Seguridad del código
Máquina Virtual Java (JVM)
La Java Virtual Machine es una máquina hipotética que
emula por software a una máquina real. Contiene:
ß Conjunto de instrucciones máquina (C.O. + Operandos)
ß Registros
ß Pila
ß Memoria
ß ...
El compilador genera bytecodes (instrucciones de código
máquina para JVM)
El intérprete ejecuta y traduce los bytecodes para cada
máquina específica
4
Compilador e Intérprete de Java
El compilador analiza la sintaxis del código fuente (con
extensión *.java). Si no hay errores, genera bytecodes
> javac Nombre.java
Nombre.class
El intérprete es la Máquina Virtual Java que ejecuta los
bytecodes (con extensión *.class) creados por el
compilador
> java Nombre (sin extensión .class)
Aplicación con argumentos:
> java Nombre arg1 arg2 ...
Garbage Collector
Debe liberarse la memoria reservada dinámicamente que
no se vaya a utilizar más
En otros lenguajes, esta liberación debe realizarla el
propio programador
La JVM dispone de un thread que rastrea las operaciones
de memoria: el Garbage Collector, el cual:
ß Verifica y libera la memoria que no se necesita
ß Se ejecuta automáticamente
ß Puede variar según la implementación de la JVM
5
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
ß el código no provoca desbordamientos de la pila
ß los tipos de los parámetros son correctos para todo el
código
ß no existen conversiones ilegales de datos (p.e. convertir de
enteros a punteros)
ß los accesos a los campos de los objetos están autorizados
Variables de entorno
En versiones antiguas del JDK, es necesario incluir las
siguientes líneas al final del autoexec.bat
Para tener accesibles el compilador y el intérprete Java:
set PATH=%PATH%;C:\jdk1.2.2\bin
(el directorio dependerá de dónde se hayan instalado las JDK)
Para acceder a las clases desarrolladas por uno mismo:
set CLASSPATH=.;%CLASSPATH%
6
Formato de los Ficheros Fuente
El fichero fuente contiene 3 elementos principales:
ß Declaración de paquete (opcional)
ß Sentencias de importación (opcional)
ß Declaración de clase o de interfaz
Ejemplo: fichero fuente Empleado.java
package abc.financedept;
import java.lang.*;
import java.awt.*;
public class Empleado
{
...
}
“¡Hola Mundo!”
Fichero HolaMundo.java:
//
// Aplicación ejemplo HolaMundo
//
public class HolaMundo
{
1
2
3
4
5
6
7
8
9
10 }
public static void main (String args[])
{
System.out.println(“¡Hola Mundo!”);
}
> javac HolaMundo.java
> java HolaMundo
¡Hola Mundo!
7
Características de Java
Fco. Javier Alcalá Casado
Características del Lenguaje
Sensible a mayúsculas/minúsculas
Soporta comentarios
Lenguaje de formato libre
Permite identificadores
Incluye palabras reservadas
Permite variables y constantes
Convenciones de nomenclatura
Tiene reglas sobre los tipos de datos
8
Sensible a Mayúsculas/Minúsculas
Se distingue entre mayúsculas y minúsculas
Los identificadores Cat, cat y CAT son diferentes
Todas las palabras reservadas del lenguaje van en
minúsculas
Soporta Comentarios
Existen tres formas de introducir comentarios:
ß Comentario en una línea
// Comentario de una línea
ß Comentario en una o más líneas
/* Comentario de
más de una línea */
ß Comentario de documentación. Se usa con javadoc
/** Método XYZ:
Realiza la labor X sobre los datos Y
devolviendo Z */
> javadoc Fichero.java
Fichero.html
9
Lenguaje de Formato Libre
La disposición de los elementos dentro del código es libre
Sentencias: línea simple de código terminada en ;
total = a + b + c + d ;
Bloque de código: conjunto de sentencias agrupadas entre
llaves
{
}
x=x+1;
y=y+1;
Java permite espacios en blanco entre elementos del código
x1 = y * delta ;
x2 = (y+1) * delta ;
Identificadores
Son nombres de clases, variables o métodos
No tienen longitud máxima
El primer carácter del identificador debe ser: A-Z, a-z, _, $
El resto: A-Z, a-z, _, $, 0-9
No se permiten vocales acentuadas ni la letra e ñe (ñ, Ñ)
No se permite utilizar palabras reservadas como
identificador
10
Palabras Reservadas
Palabras con un significado especial para el compilador:
default
do
double
else
extends
false2
final
finally
float
for
abstract
boolean
break
byte
case
catch
char
class
const1
continue
1 palabras no usadas por el lenguaje, pero son reservadas
2 realmente son constantes del lenguaje
goto1
if
implements
import
instanceof
int
interface
long
native
new
null2
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
true2
try
void
volatile
while
Variables y Constantes
Variables: zona de memoria cuyos valores van a cambiar
durante la ejecución
Declaración:
<tipo> <identificador> ; ó
<tipo> <identificador> , <identificador> ... ;
Ejemplo: int x, y, z ;
Constantes: zona de memoria cuyos valores no cambian
Declaración:
final <tipo> <identificador> = <valor> ;
Ejemplo: final double PI = 3.14159265 ;
11
Asignación de Variables
Se utiliza el operador asignación =
<variable> = <expresión> ;
La parte izquierda siempre debe ser una variable
La parte derecha puede ser un literal, una variable, una
expresión, una función o una combinación de todos
Se puede asignar un valor a una variable en el momento
de declararla
Ejemplo: int i = 0 ;
Convenciones de Nomenclatura (I)
Los identificadores que proporciona Java siguen una
convención según el elemento:
ß Clases: primera letra en mayúscula de cada palabra
Ejemplo: Empleado, LibroDeCuentas, String
ß Variables: primera letra en minúscula y la primera letra de
cada palabra en mayúscula
Ejemplo: contador, numeroTotalAccesos, string
ß Constantes: todo en mayúsculas, separando cada palabra
por el carácter “_”
Ejemplo: PI, ANCHO_IMAGEN
12
Convenciones de Nomenclatura (II)
ß Métodos: siguen el mismo formato que las variables
seguidas de paréntesis “(“ “)”
Ejemplo: sumar(), obtenerResultado()
ß Estructuras de control: utilizar llaves englobando a todas
las sentencias de una estructura de control, aunque sólo
haya una sentencia
Ejemplo:
if ( <condición> )
{
// hacer algo
}
else
{
}
// hacer otra cosa
Tipos de Datos y Operadores
Fco. Javier Alcalá Casado
13
Tipos de Datos
Java define dos tipos de datos:
ß Tipos primitivos
ß Tipos referencia
Los tipos primitivos son ocho agrupados en cuatro
categorías:
ß lógico: boolean
ß texto: char
ß entero: byte, short, int, long
ß real: float, double
Los tipos referencia son punteros a objetos
Tipo de Datos Lógico
El tipo de datos boolean (8 bits) puede tomar dos
valores posibles: true y false
El tipo boolean no toma valores numéricos
En Java no se considera cero como falso y distinto de
cero como verdadero (como sucede en C/C++)
No existe conversión entre tipos enteros y tipos lógicos
int i = 10 ;
if ( i )
{ ... }
int i = 10 ;
if ( i != 0 )
{ ... }
Error de compilación
Correcto
14
Tipo de Datos de Texto
El tipo char (16 bits) representa sólo un carácter Unicode
El código universal Unicode inclu
Comentarios de: Curso de programación JAVA (0)
No hay comentarios