CARACTERES DE JAVA
Los caracteres de Java pueden
agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos
de puntuación y secuencias de escape.
Letras, dígitos y otros
Estos caracteres son utilizados
para formar las constantes, los identificadores y las palabras clave de Java.
Son los siguientes:
• Letras mayúsculas de los
alfabetos internacionales:
A - Z (son válidas las letras
acentuadas y la Ñ)
• Letras minúsculas de los
alfabetos internacionales:
a - z (son válidas las letras
acentuadas y la~)
• Dígitos de los alfabetos
internacionales, entre los que se encuentran:
o 1 2 3 4 5 6 7 8 9
• Caracteres:"_","$"
y cualquier carácter Unicode por encima de OOCO.
El compilador Java trata las
letras mayúsculas y minúsculas como caracteres diferentes. Por ejemplo los
identificadores Año y año son diferentes.
Espacios en blanco
Los caracteres espacio en blanco
(ASCll SP), tabulador horizontal (ASCll HT), avance de página (ASCll FF), nueva
línea (ASCll LF), retomo de carro (ASCll CR) o CR LF (estos dos caracteres son
considerados como uno solo: \n), son caracteres denominados espacios en blanco,
porque la labor que desempeñan es la misma que la del espacio en blanco: actuar
como separadores entre los elementos de un programa, lo cual permite escribir
programas más legibles. Por ejemplo, el siguiente código:
public static void main (String(J
args) l System.out.print("Hola, qué tal esHis.\n"); 1
puede escribirse de una forma más
legible así:
public static void main CString[J
args)
{
System.out.print("Hola. qué
tal est~is.\n");
Los espacios en blanco en exceso
son ignorados por el compilador.
Caracteres especiales y signos de
puntuación. Este grupo de caracteres se utiliza de diferentes formas; por
ejemplo, para indicar que un identificador es una función o un array; para
especificar una determinada operación aritmética, lógica o de relación, etc.
Son los siguientes:
. . ; : ? . • ( ) [ J 1 1 < !
1 1 \ - + % & ft * - = >
Secuencias de escape
Cualquier carácter de los
anteriores puede también ser representado por una secuencia de escape. Una
secuencia de escape está fonnada por el carácter\ seguido de una letra o de una
combinación de dígitos. Son utilizadas para acciones como nueva línea. tabular
y para hacer referencia a caracteres no imprimibles.
A continuación hay una lista de
secuencias de escape:
\n -----> Nueva Linea.
\t -----> Tabulador.
\r -----> Retroceso de Carro.
\f -----> Comienzo de Pagina.
\b -----> Borrado a la
Izquierda.
\\ -----> El carácter barra
inversa ( \ ).
\' -----> El carácter prima
simple ( ' ).
\" -----> El carácter
prima doble o bi-prima ( " ).
TIPOS DE DATOS
Recuerde las operaciones
aritméticas que realizaba el programa Aritmetica.java que vimos en un capítulo
anterior. Por ejemplo, una de las operaciones que realizábamos era la suma de
dos valores:
datol = 20 : dalo2 - 10:
resultado= datol + dato2:
Para que el compilador Java
reconozca esta operación es necesario especificar previamente el tipo de cada
uno de los operandos que intervienen en la misma, así como el tipo del
resultado. Para ello, escribiremos una línea como la siguiente:
int dato1. dato2. resultado :
La declaración anterior le dice
al compilador Java que dato!, dato2 y resultado son de tipo entero (int).
Los tipos de datos en Java se
clasifican en: tipos primitivos y tipos referenciados.
Tipos primitivos
Hay ocho tipos primitivos de
datos que podemos clasificar en: tipos numéricos y el tipo boolean. A su vez,
los tipos numéricos se clasifican en tipos enteros y tiposreales.
Tipos enteros: byte, short, int,
long y char.
Tipos reales: float y double.
Cada tipo primitivo tiene un
rango diferente de valores positivos y negativos, excepto el boolean que sólo
tiene dos valores: true y false. El tipo de datos que se seleccione para
declarar las variables de un determinado programa dependerá del rango y tipo de
valores que vayan a almacenar cada una de ellas y de si éstos son enteros o
fraccionarios.
Se les llama primitivos porque
están integrados en el sistema y en realidad no son objetos, lo cual hace que
su uso sea más eficiente. Más adelante veremos también que la biblioteca Java
proporciona .las clases: Byte, Character, Short, Integer, Long, Float, Double y
Boolean, para encapsular cada uno de los tipos expuestos, proporcionando así
una funcionalidad añadida para manipularlos.
byte
El tipo byte se utiliza para
declarar datos enteros comprendidos entre -128 y +127. Un byte se define como
un conjunto de 8 bits, independientemente de la plataforma en que se ejecute el
código byte de Java.
short
El tipo short se utiliza para
declarar datos enteros comprendidos entre -32768 y +32767. Un valor short se
define como un dato de l6 bits de longitud, independientemente de la plataforma
en la que resida el código byte de Java.
int
El tipo int se utiliza para
declarar datos enteros comprendidos entre -2147483648 y +2147483647. Un valor
int se define como un dato de 32 bits de longitud, independientemente de la
plataforma en la que se ejecute el código byte de Java.
En general, el uso de enteros de
cualquier tipo produce un código compacto y rápido. Así mismo, podemos afirmar
que la longitud de un short es siempre menor o igual que la longitud de un int.
long
El tipo long se utiliza para
declarar datos enteros comprendidos entre los valores-9223372036854775808 y
+9223372036854775807. Un valor long se define como un dato de 64 bits de
longitud, independientemente de la plataforma en la que se ejecute el código
byte de Java
char
El tipo char es utilizado para
declarar datos enteros en el rango \uOOOO a \uFFFF en Unicode (O a 65535). Los
valores O a 127 se corresponden con los caracteres ASCII del mismo código (ver
los apéndices). El juego de caracteres ASCII conforman una parte muy pequeña
del juego de caracteres Unicode.
char car = 0:
En Java para representar los
caracteres se utiliza el código Unicode. Se trata de un código de 16 bits (esto
es, cada carácter ocupa 2 bytes) con el único propósito de internacionalizar el
lenguaje. El código Unicode actualmente representa los caracteres de la mayoría
de los idiomas escritos conocidos en todo el mundo.
Un carácter es representado
internamente por un entero, que puede ser expresado en decimal, hexadecimal u
octal, como veremos más adelante.
float
El tipo float se utiliza para
declarar un dato en coma flotante de 32 bits en el formato IEEE 754 (este
formato utiliza 1 bit para el signo, 8 bits para el exponente y 24 para la
mantisa). Los datos de tipo float almacenan valores con una precisión aproximada
de 7 dígitos. Para especificar que una constante (un literal) es de tipo float.
hay que añadir al final de su valor la letra 'f' o 'F'.
double
El tipo double se utiliza para
declarar un dato en coma flotante de 64 bits en el formato IEEE 754 ( l bit
para el signo, 11 bits para el exponente y 52 para la mantisa). Los datos de
tipo double almacenan valores con una precisión aproximada de 16 dígitos. Para
especificar explícitamente que una constante (un literal) es de tipo double,
hay que añadir al final de su valor la letra 'd' o 'D': por omisión, una
constante es considerada de tipo double.
boolean
El tipo boolean se utiliza para
indicar si el resultado de la evaluación de una expresión booleana es verdadero
o falso. Los dos posibles valores de una expresión booleana son true y false.
Los literales true y false son constantes definidas como palabras clave en el
Lenguaje Java. Por tanto, se pueden utilizar las palabras true y false como
valores de retorno, en expresiones condicionales, en asignaciones y en
comparaciones con otras variables booleanas.
El contenido de una variable
booleana no se puede convertir a otros tipos, pero sí se puede convertir en una
cadena de caracteres.
Tipos referenciados
Hay tres clases de tipos
referenciados: clases, interfaces y arrays.
LITERALES
Un literal es la expresión de un
valor de un tipo primitivo, de un tipo String (cadena de caracteres) o la
expresión null (valor nulo o desconocido). Por ejemplo, son literales: 5, 3.14,
'a', "hola" y null. En realidad son valores constantes. Un literal en
Java puede ser: un entero, un real, un valor booleano, un carácter, una cadena
de caracteres y un valor nulo.
Literales enteros
El lenguaje Java permiite
especificar un literal entero en base 10, 8 y 16. En general, el signo + es
opcional si el valor es positivo y el signo – estará presente siempre que el
valor sea negativo. Un literal entero es de tipo int a no ser que su valor
absoluto sea mayor que el de un int o se especifique el sufijo l o L. en cuyo
caso será long.
Un literal entero decimal puede
tener uno o más dígitos del O a 9, de los cuales el primero de ellos es
distinto de O.
Un literal entero octal puede tener
uno o más dígitos del O a 7, precedjdos por O (cero).
Un literal entero hexadecimal
puede tener uno o más dígitos del O a 9 y letras de la A a la F (en mayúsculas
o en minúsculas) precedidos por Ox o OX (cero seguido de x).
Literales reales
Un literal real está formado por
una parte entera, seguido por un punto decimal, y una parte fraccionaria.
También se permite la notación científica, en cuyo caso se añade al valor una e
o E, seguida por un exponente positivo o negativo. donde exponente representa
cero o más dígitos del O al 9 y E o e es el símbolo de exponente de la base 10
que puede ser positivo o negativo (2E-5 = 2 x JfF5 ). Si la constante real es
positiva no es necesario especificar el signo y si es negativa lleva el signo
menos (-).
Una constante real tiene siempre
tipo double, a no ser que se añada a la misma una f o F, en cuyo caso será de
tipo Octal.
También se pueden utilizar los
sufijos do D para especificar explícitamente que se trata de una constante de
tipo double.
Literales de un solo carácter
Los literales de un solo carácter
son de tipo cbar. Este tipo de literales está formado por un único carácter
encerrado entre comillas simples. Una secuencia de escape es considerada como
un único carácter.
El valor de una constante de un
solo carácter es el valor que le corresponde en el juego de caracteres de la
máquina.
Literales de cadenas de
caracteres
Un literal de cadena de
caracteres es una secuencia de caracteres encerrados entre comillas dobles
(incluidas las secuencias de escape como\").
Las cadenas de caracteres en Java
son objetos de la clase String. Esto es, cada vez que en un programa se utilice
un literal de caracteres, Java crea de forma automática un objeto String con el
valor del literal.
Las cadenas de caracteres se
pueden concatenar (unir) empleando el operador +. Por ejemplo, la siguiente
sentencia concatena las cadenas "Distancia: ", distancia, y"Km.".
Si alguna de las expresiones no
se corresponde con una cadena, como se supone que ocurre con distancia, Java la
convierte de forma automática en una cadena de caracteres. Más adelante
aprenderá el porqué de esto.
IDENTIFICADORES
Los identificadores son nombres
dados a tipos, literales, variables, clases, interfaces, métodos, paquetes y
sentencias de un programa.
Las letras pueden ser mayúsculas
o minúsculas. Para Java una letra mayúscula es un carácter diferente a esa
misma letra en minúscula. Por ejemplo, los identificadores Suma, suma y SUMA
son diferentes.
Los identificadores pueden tener
cualquier número de caracteres.
PALABRAS CLAVE
Las palabras clave son
identificadores predefinidos que tienen un significado especial para el
compilador Java. Por lo tanto, un identificador definido por el usuario, no
puede tener el mismo nombre que una palabra clave. El lenguaje Java, tiene las
siguientes palabras clave:
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
Las palabras clave deben
escribirse siempre en minúsculas, como están.
COMENTARIOS
Un comentario es un mensaje a
cualquiera que lea el código fuente. Añadiendo comentarios se hace más fácil la
comprensión de un programa. La finalidad de los comentarios es explicar el
código fuente. Java soporta tres tipos de comentarios:
• Comentario tradicional. Un
comentario tradicional empieza con los caracteres/* y finaliza con los
caracteres */. Estos comentarios pueden ocupar más de una línea, pero no pueden
anidarse.
• Comentario de una sola línea.
Este tipo de comentario comienza con una doble barra (//) y se extiende hasta
el final de la línea.
• Comentario de documentación.
Este tipo de comentario comienza con /** y termina con */. Son comentarios
especiales que javadoc utiliza para generar la documentación acerca del
programa, aunque también se pueden emplear de manera idéntica a los comentarios
tradicionales.
DECLARACIÓN DE CONSTANTES
SIMBÓLICAS
Declarar una constante simbólica
significa decirle- al compilador Java el nombre de la constante y su valor.
Esto se hace utilizando el calificador final y/o el static.
¿Por qué utilizar constantes?
Utilizando constantes es más
fácil modificar un programa. Por ejemplo, supongamos que un programa utiliza N
veces una constante de valor 3.14. Si hemos definido dicha constante como final
static double Pi = 3.14 y posteriormente necesitamos cambiar el valor de la
misma a 3.1416, sólo tendremos que modificar una línea, la que define la
constante. En cambio, si no hemos declarado Pi, sino que hemos utilizado el
valor 3.14 directamente N veces, tendríamos que realizar N cambios.
DECLARACIÓN DE UNA VARIABLE
Una variable representa un espacio
de memoria para almacenar un valor de un determinado tipo. El valor de una
variable, a diferencia de una constante, puede cambiar durante la ejecución de
un programa. Para utiJizar una variable en un programa, primero hay que
declararla. La declaración de una variable consiste en enunciar el nombre de la
misma y asociarle un tipo:
Iniciación de una variable
Las variables miembro de una
clase son iniciadas por omisión por el compilador Java para cada objeto que se
declare de la misma: las variables numéricas con O, los caracteres con '\[)' y
las referencias a las cadenas de caracteres y el resto de las referencias a
otros objetos con null. También pueden ser iniciadas explícitamente. En cambio,
las variables locales no son iniciadas; por el compilador Java. Por lo tanto,
es nuestra obligación iniciarlas, de lo contrario el compilador visualizará un mensaje
de error en todas las sentencias que hagan referencia a esas variables.
EXPRESIONES NUMÉRICAS
Una expresión es un conjunto de
operandos unidos mediante operadores para especificar una operación
determinada. Todas las expresiones cuando se evalúan retornan un valor.
CONVERSIÓN ENTRE TIPOS DE DATOS
Cuando Java tiene que evaluar una
expresión en la que intervienen operandos de diferentes tipos, primero
convierte, sólo para realizar las operaciones solicitadas, los valores de los
operandos al tipo del operando cuya precisión sea más alta.
Cuando se trate de una
asignación, convierte el valor de la derecha al tipo de la variable de la
izquierda siempre que no haya pérdida de información. En otro caso, Java exige
que la conversión se realice explícitamente. La figura siguiente resume los
tipos colocados de izquierda a derecha de menos a más precisos; las flechas
indican las conversiones implícitas permitidas:
TIPO
ORIGEN
|
TIPO DESTINO
|
byte
|
double, float, long,
int, char, short
|
Short
|
double, float, long, int
|
char
|
double, float, long, int
|
Int
|
double, float, long
|
long
|
double, float
|
Float
|
Double
|
No hay comentarios:
Publicar un comentario