Parte 1 (Lectura para los Cursos: (6º, 5º,4º)
El
lenguaje de programación Java
Java es un lenguaje de programación de alto nivel que tiene las siguientes
características:
- Orientado a objetos
- Distribuido y dinámico
- Robusto
- Seguro
- Multitarea
- Portable
La
mayoría de los lenguajes de programación se caracterizan por ser interpretados
o compilados, lo que determina la manera en como serán ejecutados en una
computadora.
Java tiene la característica de ser al mismo tiempo compilado e interpretado.
El compilador es el encargado de convertir el código fuente de un programa en
un código intermedio llamado bytecode que es independiente de la
plataforma en que se trabaje y que es ejecutado por el intérprete de Java que
forma parte de la Máquina Virtual de Java.
Compilación y ejecución de programas en Java.
La
plataforma Java
Una plataforma es el ambiente de hardware o software en el cual se ejecutan los
programas. En general, la mayoría de las plataformas pueden ser descritas como
una combinación de hardware y sistema operativo. Algunas de las plataformas más
populares son Windows, Solaris, Linux y MacOS.
La plataforma Java difiere de las anteriores en que ésta es una plataforma
basada únicamente en software que corre por encima de las plataformas basadas
en hardware.
La plataforma Java consta de dos componentes:
- La Máquina Virtual de Java
(JVM)
- La Interfaz de Programación de
Aplicaciones de Java (API Java)
Tipos
de programas en Java
Los programas en Java suelen estar en una de las siguientes categorías:
Los applets son pequeños programas que se
incorporan en una página Web y que por lo tanto, necesitan de un Navegador Web
compatible con Java para poder ejecutarse. A menudo los applets se descargan
junto con una página HTML desde un Servidor Web y se ejecutan en la máquina
cliente.
Las aplicaciones son programas standalone
de propósito general que normalmente se ejecutan desde la línea de comandos del
sistema operativo. Con Java se puede realizar cualquier programa que
normalmente se crearía con algún otro lenguaje de programación.
Los servlets al contrario de los applets
son programas que están pensados para trabajar en el lado del servidor y
desarrollar aplicaciones Web que interactúen con los clientes. Los servlets son
una alternativa de la programación CGI tradicional.
Compilación
y ejecución de programas Java (1 de 4)
El Kit de desarrollo de Java (JDK) contiene las herramientas y librerías
necesarias para crear y ejecutar applets y aplicaciones en Java.
A continuación se listas algunas de las utilidades que se pueden encontrar en
el JDK:
- javac. Es el compilador de Java. Se
encarga de convertir el código fuente escrito en Java a bytecode.
- java. Es el intérprete de Java.
Ejecuta el bytecode a partir de los archivos class.
- appletviewer. Es un visor de applets. En la
mayoría de las ocasiones puede utilizarse en lugar de un Navegador Web.
- javadoc. Se utiliza para crear
documentación en formato HTML a partir de el código fuente Java y los
comentarios que contiene.
- javap. Es un desensamblador de Java.
- jar. Es una herramienta utilizada
para trabajar con los archivos JAR.
Sintaxis
de Java
La sintaxis de un lenguaje define cómo se usarán las palabras claves, los
operadores y las variables para construir y evaluar expresiones. La sintaxis de
Java especifica como se escribirán los siguientes elementos:
- Expresiones y operadores.
- Variables y tipos de datos.
Comentarios
Java ofrece tres tipos de comentarios: dos para comentarios regulares en el
código fuente y uno para la documentación especial del sistema javadoc.
- Comentarios de varias líneas.
Los comentarios de varias líneas se
incluyen entre los símbolos /* y */, como en C y C++.
/*
Este es un ejemplo de
un comentario de varias
líneas.
*/
- Comentarios de una sola línea.
Para comentariar una sola línea se utiliza
la doble diagonal //. El comentario se inicia cuando se encuentra la
doble diagonal y continua hasta el final de la línea.
// Este es un comentario de una sola linea
//Este
es otro comentario
- Comentarios para documentación.
Realmente este tipo de comentario es el
mismo que el de varias líneas con la diferencia de que la información que
contenga será usada para un procesamiento especial que lleva a cabo la
herramienta javadoc.
Se distingue del comentario de varias líneas porque se agrega un asterisco
adicional al inicio del comentario.
/**
Este tipo de comentarios
los utiliza la
herramienta javadoc
*/
Identificadores
Un identificador es una secuencia de caracteres comenzando por una letra y
conteniendo letras y números. Los identificadores no se limitan a los
caracteres ASCII, si el editor de texto lo soporta, se pueden escribir
identificadores utilizando caracteres Unicode.
Las letras Java incluyen los caracteres ASCII A-Z y a-z. Los digitos
Java incluyen los digitos ASCII 0-9. Para propósitos de construir
identificadores, los caracteres ASCII $ y _ son también considerados letras
Java.
No hay un límite en lo concerniente al número de caracteres que pueden tener
los identificadores.
Estos son algunos ejemplos de identificadores válidos:
_varx
$var1 MAX_NUM
var2
Palabras clave
La siguiente tabla muestra las palabras claves de Java, éstas son reservadas y
no pueden ser utilizadas como identificadores.
abstract
|
default
|
if
|
private
|
this
|
boolean
|
do
|
implements
|
protected
|
throw
|
break
|
double
|
import
|
public
|
throws
|
byte
|
else
|
instanceof
|
return
|
transient
|
case
|
extends
|
int
|
short
|
try
|
catch
|
final
|
interface
|
static
|
void
|
char
|
finally
|
long
|
strictfp**
|
volatile
|
class
|
float
|
native
|
super
|
while
|
const*
|
for
|
new
|
switch
|
|
continue
|
goto*
|
package
|
synchronized
|
|
* Son palabras claves de Java que no son usadas actualmente.
** Palabra clave agregada en Java 2
true, false, and null no son palabras claves pero son palabras
reservadas, así que tampoco pueden ser utilizadas como identificadores.
Literales
Una literal es un valor constante formado por una secuencia de caracteres.
Cualquier declaración en Java que defina un valor constante -un valor que no
pueda ser cambiado durante la ejecución del programa- es una literal.
Son ejemplos de literales los números, los caracteres y las cadenas de
caracteres.
- Literales numéricas
Se pueden crear literales numéricas a partir de cualquier tipo de dato
primitivo.
·
Ej.
·
123 //literal int
·
123.456 //literal double
·
123L //literal long
·
123.456F //literal float
- Literales booleanas
Las literales boolenas consisten de las palabras reservadas true y false.
- Literales de caracteres
Las literales de caracteres se expresan por un solo caracter entre
comillas sencillas
Ej. 'a',
'%', '7'
- Literales de cadena
Una cadena es una combinación de caracteres. Las cadenas en Java son
instancias de la clase String, por ello cuentan con métodos que
permiten combinar, probar y modificar cadenas con facilidad.
Las literales de cadena se representan por una secuencia de caracteres
entre comillas dobles.
Ej.
"hola",
"cadena123",
"12345"
Expresiones
y Operadores
Una expresión es una combinación de
variables, operadores y llamadas de métodos construida de acuerdo a la sintaxis
del lenguaje que devuelve un valor.
El tipo de dato del valor regresado por una expresión depende de los elementos
usados en la expresión.
Los operadores son símbolos especiales que
por lo común se utilizan en expresiones.
La
tabla siguiente muestra los distintos tipos de operadores que utiliza Java.
Operador
|
Significado
|
Ejemplo
|
Operadores aritméticos
|
+
|
Suma
|
a + b
|
-
|
Resta
|
a - b
|
*
|
Multiplicación
|
a * b
|
/
|
División
|
a / b
|
%
|
Módulo
|
a % b
|
Operadores de asignación
|
=
|
Asignación
|
a = b
|
+=
|
Suma y
asignación
|
a += b
(a=a + b)
|
-=
|
Resta y
asignación
|
a -= b
(a=a - b)
|
*=
|
Multiplicación
y asignación
|
a *= b
(a=a * b)
|
/=
|
División y
asignación
|
a / b (a=a
/ b)
|
%=
|
Módulo y
asignación
|
a % b (a=a
% b)
|
Operadores relacionales
|
==
|
Igualdad
|
a == b
|
!=
|
Distinto
|
a != b
|
<
|
Menor que
|
a < b
|
>
|
Mayor que
|
a > b
|
<=
|
Menor o
igual que
|
a <= b
|
>=
|
Mayor o
igual que
|
a >= b
|
Operadores especiales
|
++
|
Incremento
|
a++
(postincremento)
++a (preincremento)
|
--
|
Decremento
|
a--
(postdecremento)
--a (predecremento)
|
(tipo)expr
|
Cast
|
a = (int)
b
|
+
|
Concatenación
de cadenas
|
a =
"cad1" + "cad2"
|
.
|
Acceso a
variables y métodos
|
a =
obj.var1
|
( )
|
Agrupación
de expresiones
|
a = (a +
b) * c
|
La tabla siguiente muestra la precedencia asignada a los operadores, éstos son
listados en orden de precedencia.
Los operadores en la misma fila tienen igual precedencia
Operador
|
Notas
|
.
[] ()
|
Los
corchetes se utilizan para los arreglos
|
++
-- ! ~
|
! es el
NOT lógico y ~ es el complemento de bits
|
new
(tipo)expr
|
new se
utiliza para crear instancias de clases
|
* /
%
|
Multiplicativos
|
+ -
|
Aditivos
|
<<
>> >>>
|
Corrimiento
de bits
|
<
> <= >=
|
Relacionales
|
==
!=
|
Igualdad
|
&
|
AND (entre
bits)
|
^
|
OR
exclusivo (entre bits)
|
|
|
OR
inclusivo (entre bits)
|
&&
|
AND lógico
|
||
|
OR lógico
|
? :
|
Condicional
|
=
+= -= *= /= %= &= ^= |=
<<= >>= >>>=
|
Asignación
|
Todos
los operadores binarios que tienen la misma prioridad (excepto los operadores
de asignación) son evaluados de izquierda a derecha.
Los operadores de asignación son evaluados de derecha a izquierda.
Variables
y tipos de datos (1 de 3)
Las variables son localidades de memoria en las que pueden almacenarse datos.
Cada una tiene un nombre, un tipo y valor. Java tiene tres tipos de variables:
de instancia, de clase y locales.
- Variables de instancia.
Se utilizan para definir los atributos de un objeto.
- Variables de clase.
Son similares a las variables de instancia, con la excepción de que sus
valores son los mismos para todas las instancias de la clase.
- Variable locales.
Se declaran y se utilizan dentro de las definiciones de los métodos.
* A diferencia de otros
lenguajes, Java no tiene variables globales, es decir , variables que son
vistas en cualquier parte del programa.
Variables
y tipos de datos (2 de 3)
Java es un lenguaje "fuertemente tipeado o tipificado" por lo que es
necesario especificar el tipo de dato para cada una de las variables que se
vayan a utilizar en un programa. El nombre de la variable debe de ser un
identificador válido, y se usa para referirse a los datos que contiene una
variable.
El tipo de una variable determina los valores que puede almacenar y las
operaciones que se pueden hacer sobre ella. Para dar a una variable un tipo y
un nombre, se escribe una declaración de una variable, que tiene la siguiente
forma:
TipoDato nombreVariable;
Ej.
String nombre; // variable de tipo String
int edad; // variable de tipo int
Punto p; // variable del tipo Punto
Se
pueden escribir varios nombres de variables del mismo tipo en una sola línea,
int x, y, z;
String nombre, apellido;
También
se puede asignar un valor inicial a las variables al momento de crearlas,
String nombre,
apellido="MiApellido";
int edad = 24;
Variables
y tipos de datos (3 de 3)
Las variables en Java pueden ser uno de los siguientes tipos:
Una variable de tipo primitivo contiene un
solo valor del tamaño y formato apropiado de su tipo: un número, un carácter, o
un valor booleano.
La tabla siguiente lista
los tipos de datos primitivos soportados por Java.
Tipo
|
Descripción
|
Tamaño/Formato
|
Números enteros
|
byte
|
Entero
byte
|
8-bit 2's
|
short
|
Entero
corto
|
16-bit 2's
|
int
|
Entero
|
32-bit 2's
|
long
|
Entero
largo
|
64-bit 2's
|
Números reales
|
float
|
Punto
flotante
|
32-bit
IEEE 754
|
double
|
Punto
flotante de doble presición
|
64-bit
IEEE 754
|
Otros tipos
|
char
|
Un solo
carácter
|
16-bit
caracteres Unicode
|
boolean
|
Un valor
booleano
|
true o
false
|
En
Java, cualquier numérico con punto flotante automáticamente se considera
double. Para que sea considerado float se agrega una letra "f" o
"F" al final del valor.
double d = 10.50;
float f = 10.50F;
Los arreglos, las clases y las interfaces
son del tipo referencia. El valor de una variable del tipo referencia es una
dirección de un conjunto de valores representados por una variable.
Las referencias en Java no son como en C++, éstas son identificadores de
instancias de alguna clase en particular.
Ej.
String
cad; //referencia a un objeto
de la clase String
Punto
p; //referencia a un objeto de
la clase Punto
int[]
var_arreglo; //referencia a un
arreglo de enteros
Bloques
y sentencias (1 de 6)
- Sentencia
Una instrucción o sentencia representa la tarea más sencilla que se puede
realizar en un programa.
Los siguientes tipos de expresiones pueden
ser hechas dentro de una sentencia terminando la expresión con punto y coma (;):
* Expresiones de asignación
* Cualquier uso de los operadores ++ y --
* Llamada de métodos
* Expresiones de creación de objetos
Esta clase de sentencias son llamadas sentencias de expresión.
Ej.
valorA = 8933.234; // asignación
valorA++; // incremento
System.out.println(valorA); // llamada a un método
Integer objInt = new Integer(4); //
creación de objetos
- Sentencias de declaración de
variables
Las sentencias de declaración de variables
se utilizan para declarar variables.
Ej.
int bValue;
double aValue = 8933.234;
String
varCad;
- Sentencias de control de flujo
Las sentencias de control de flujo
determinan el orden en el cual serán ejecutadas otro grupo de sentencias. Las
sentencias if y for son ejemplos de sentencias de control de
flujo.
Un bloque es un grupo de cero o más
sentencias encerradas entre llaves ( { y } ). Se puede poner un
bloque de sentencias en cualquier lugar en donde se pueda poner una sentencia
individual.
Bloques
y sentencias (2 de 6)
Las sentencias de control de flujo se pueden utilizar para ejecutar sentencias
condicionalmente, para ejecutar de manera repetida un bloque de sentencias y en
general para cambiar la secuencia normal de un programa.
- La sentencia if
La sentencia if permite llevar a cabo la ejecución condicional de
sentencias.
·
if
( Expresion ){
·
sentencias;
·
}
Se ejecutan las sentencias si al evaluar la
expresión se obtiene un valor booleano true.
if ( Expresion ){
sentenciasA;
}
else{
sentenciasB;
}
Si al evaluar la expresión se obtiene un
valor booleano true se ejecutarán las
sentenciasA, en caso contrario se ejecutarán las sentenciasB.
Bloques
y sentencias (3 de 6)
Cuando se requiere comparar una variable
con una serie de valores diferentes, puede utilizarse la sentencia switch,
en la que se indican los posibles valores que puede tomar la variable y las
sentencias que se tienen que ejecutar sí es que la variable coincide con alguno
de dichos valores.
switch( variable ){
case
valor1:
sentencias;
break;
case
valor2:
sentencias;
break;
...
case
valorN:
sentencias;
break;
default:
sentencias;
}
Cada case ejecutará las sentencias
correspondientes, con base en el valor de la variable, que deberá de evaluarse
con valores de tipo byte, char, short o int.
Si el valor de la variable no coincide con ningún valor, entonces se ejecutan
las sentencias por default, sí es que las hay.
La sentencia break al final de cada case transfiere el control al
final de la sentencia switch; de esta manera, cada vez que se ejecuta un
case todos los enunciados case restantes son ignorados y termina
la operación del switch.
Bloques y sentencias (4 de 6)
El ciclo for repite una sentencia,
o un bloque de sentencias, mientras una condición se cumpla. Se utiliza la
mayoría de las veces cuando se desea repetir una sentencia un determinado
número de veces.
La forma general de la sentencia for es la siguiente;
for(inicialización;condición;incremento){
sentencias;
}
* En su forma más simple, la
inicialización es una sentencia de asignación que se utiliza para establecer
una variable que controle el ciclo.
* La condición es una expresión que comprueba la variable que controla el
ciclo y determinar cuando salir del ciclo.
* El incremento define la manera en como cambia la variable que controla el
ciclo.
|
Bloques y sentencias (5 de 6)
Los ciclos while y do-while, al igual que los ciclos for
repiten la ejecución de un bloque de sentencias mientras se cumpla una
condición específica.
- La sentencia while
El formato de la sentencia while es la siguiente:
·
while (condición){
·
sentencias;
·
}
La condición es una condición booleana,
que mientras tenga el valor true permite que se ejecuten las sentencias
correspondientes.
Al contrario de los ciclos for y while
que comprueban una condición en lo alto del ciclo, el ciclo do-while
la examina en la parte más baja del mismo. Esta característica provoca que un
ciclo do-while siempre se ejecute por lo menos una vez.
El formato de la sentencia do-while es el siguiente:
do{
sentencias;
}while
(condición);
|
Bloques
y sentencias (6 de 6)
La sentencia break tiene dos usos.
El primer uso es terminar un case en la sentencia switch. El
segundo es forzar la terminación inmediata de un ciclo, saltando la prueba
condicional normal del ciclo.
La sentencia continue es similar a
la sentencia break. Sin embargo, en vez de forzar la terminación del
ciclo, continue forza la siguiente iteración y salta cualquier código
entre medias.
Se utiliza la sentencia return para
provocar la salida del método actual; es decir, return provocará que el
programa vuelva al código que llamó al método.
La sentencia return puede regresar o no un valor. Para devolver un valor, se
pone el valor después de la palabra clave return.
return valor;
El tipo de dato del valor regresado debe
ser el mismo que el que se especifica en la declaración del método.
Cuando un método es declarado void, el método no regresa ningún valor.
return;
Parte 2 (Lectura para los cursos: 3º y 2º)
LIBRERIAS JAVA
|