Anda di halaman 1dari 8

Programacin Java Variables y String.

2. LAS VARIABLES EN JAVA

Los programas de java gestionan datos que pueden ser fijos o variables, estar
incorporados al programa o ser obtenidos en la ejecucin. Estos datos se identifican con
un nombre simblico llamado identificador, y en general pueden ser variables o
constantes.
En Java hay un conjunto de variables para gestionar datos numricos o lgicos,
denominadas variables primitivas, y un conjunto especial de variables que identifican
objetos, que se conocen como variables de referencia ( p.e. para almacenar una cadena
de caracteres se utiliza un objeto de la clase String)
Nota: un objeto es un bloque de memoria que contiene uno o ms datos, en una
estructura compleja en la que se puede incluir adems trozos de programa
(instrucciones ejecutables) que determinan el comportamiento del propio objeto.
Se pueden considerar como otro grupo de variables los Arrays de variables
primitivas o referencia
Un tipo de variable se dice que es de tipo esttico (static) cuando slo hay una
copia de ste en ejecucin del programa, es no instanciable, estas variables estn
asociadas a las clases. Tambin se usa el concepto de mtodo static, siempre alojado en
memoria independiente de que se use o no, frente a los mtodos dinmicos que se
cargan en memoria cuando se usan y se descargan cuando se dejan.

2.1. Las variables primitivas


Almacenan un dato simple y deben ser declaradas antes de ser usadas. Las
variables pueden ser de tipo entero, de coma flotante con decimales, de tipo carcter y
tipo booleno.

Las variables primitivas o de referencia se declaran.


<tipo_var> nombre;
<clase> nombre;

2.1.1. Nmeros Enteros

Tipo Byte Nombre Rango de valores


Byte 1 Byte -128 a 127
Short 2 Entero corto -32768 a 32767
Int 4 Entero -231 a 231-1
Long 8 Entero largo -263 a 263-1

El siguiente programa AsignaEnteros, muestra como pueden utilizarse las var. Enteras.

1
Programacin Java Variables y String.

public class AsignaEnteros{


public static void main ( String arg[] ){
byte mini;
short enteroCorto;
int entero;
long enteroLargo;
mini = (byte)87;
enteroCorto = 23000;
entero = 2300000;
enteroLargo = 109999915;
System.out.println("Entero micro = "+ mini);
System.out.println("Entero corto= "+ enteroCorto);
System.out.println("Entero normal = "+ entero);
System.out.println("Entero largo= "+ enteroLargo);
}
}

(byte)87: se denomina casting, se utiliza para convertir un tipo de dato en otro; en este
caso el 87 lo toma por defecto como entero y lo estamos convirtiendo en byte.
Cualquier valor numrico, sin decimales, Java lo toma como entero del tipo ms corto
que lo pueda contener, por defecto
Observar que la variable, mini es un nmero, el signo + concatena cadenas de
caracteres, Java realiza conversin automtica de tipos, convirtiendo el nmero en
cadena

2.1.2. Numeros decimales o en coma flotante.

Se almacenan en formato 123.45E+12, es decir 123.45 por 1012;

Tipo Bytes Nombre Rango de valores


Float (F) 4 Real simple precision +-3.4x1038+-1.4x1045
Double (D) 8 Real doble precision +-1.8x10308+-4.9x10-324

En los nmeros reales la como se escribe como un punto. Por defecto Java los toma
como double, por lo que si es float se coloca detrs del nmero una F, o una D, aunque
este ultimo no es necesario. La letra E en el centro del nmero indica que es un nmero
expresado en potencias.

public class AsignaReales{

2
Programacin Java Variables y String.

public static void main (String args[] ){


float inters;
double capital;
inters = 6.25F;
capital = 3.72E+9D;
System.out.println("Inters = " + inters);
System.out.println("Capital = " + capital);
}
}

** Los valores literales se pueden escribir en base 10, hexadecimal y octal. Si aparece
sin ninguna terminacin se toma por defecto como entero o double (si lleva el punto).
Ej.
int n= 34; Entero en base 10
long j=4056L; Con l o L, entero largo
long h=0xFFFFFFL; nmero hexadecimal
double f1=1.345; por defecto double
float f2=1.345F; Con f o F, de tipo float
int n2=48; necesita un casting int n2=(int)48;
short s2=34000; Genera un error de desbordamiento
float f2=1.356; Necesita un casting float f2=(float)1.356;
byte mine=56 necesita casting byte mine=(byte)56;

2.1.3. Las variables boolean y char.

Boolean para datos de tipo lgico que puede tomar el valor true o false.
Char: para datos de carcter, segn el formato Unicode (utiliza 16 bits, y los los 8 de
ASCII). Estos datos se escriben con comillas simples, si se escribe con comillas dobles
se toma como una cadena de caracteres aunque contenga solo una letra.
Los caracteres especiales, conocidos como caracteres de control, o no imprimibles, se
identifican con el carcter '\' y una letra, as algunos de ellos son.
'\n' Linea siguiente
'\t' Tabulador
'\b' retroceso
'\r' Retrono de carro
'\ Comillas simples
'\\' Contrabarra (backlash)
'\' Comillas dobles
'\xxx' Carcter en octal
'\uxxx' Carcter en hexadecimal unicode
'\0' Carcter nulo (null)

3
Programacin Java Variables y String.

Ejemplo:
public class AsignaOtras {

public static void main( String arg[] ) {


boolean esCierto;
char letra;
esCierto = false;
letra = 'a';
System.out.println("Es cierto = "+ esCierto);
System.out.println("Letra = "+ letra);
letra = '\r';
System.out.println("Este texto\nse ve en\ntres lneas");
}
}

2.2. Nombre de las variables y mbito de existencia

A la hora de denominar a las variables hay que tener en cuenta que:


El primer carcter debe ser una letra (a-z, A-Z) o el carcter '_'(guion bajo) o el
carcter $.
No pueden tener espacios en blanco, deben de ser nombre continuos.
Se distingue entre maysculas y minsculas p.e. Caso y caso son identificadores
diferentes
No se pueden utilizar las palabras reservadas de Java como nombre de variable.

Palabras reservadas: abstract, boolean, break, byte, byteevalue, case, catch, char,
class, const, continue, default, do, double, else, enum, extends, false, final, finally, float,
for, goto, if, implements, import, instanceof, int, interface, long, native, new, null,
package, private, protected, public, return, short, static, super, switch, synchronized,
this, threadsafe, throw, throws, transiet, true, try, void, volatile, while.

Recomendacin:
variables primitivas y de referencia en minsculas.
Constantes en mayscula
clases: el primer carcter en mayscula; en caso de palabras compuestas,
primera letra de la segunda palabra en may.

Los nombres de las variables deben indicar qu dato se almacena, de manera que
resulte ms fcil leer el programa. No es recomendable la utilizacin de nombres muy
largos, ni la utilizacin de tildes , aunque esta permitido (no se sabe en qu mquina se

4
Programacin Java Variables y String.

va a ejecutar). Ejemplos: x2, INDICE, $micasa, mi_casa, son validos; 3ventas, const,
juan&pedro, mi casa, son identificadores no validos

Ambito de una variable

Una variable definida dentro de un bloque de sentencias entre las llaves { y


} solo tiene existencia dentro del bloque. Ejemplo:

public class AmbitoVariables{

public static void main(String args[]){


int x;
x = 10;
if (x== 10){
int y;
y = 20;
System.out.println("x = " + x );
x *=3;
System.out.println("y = " + y );
}
//La siguiente sentencia producira un error
//dado que y no esta definida fuera del bloque if
//System.out.println("y = " + y );
System.out.println("x = " + x );
}
}

2.3. La clase String

En Java no existe una primitiva para almacenar una cadena de caracteres. Existe la clase
String.

Para definir una variable que se use como referencia a un objeto se pone a su izquierda
el nombre de la clase a la que pertenecer, en nuestro caso
String nombre;

En la mayora de los casos los objetos se crean con new antes de referenciarlos,
esto no ocurre con la clase String, ya que se construyen automticamente.
Los constructores nos permiten obtener objetos de la clase Sting a partir de una cadena
de caracteres existente, de otro objeto de la clase String, de un array de caracteres, etc.
Los ms utilizados son:

5
Programacin Java Variables y String.

Sintaxis mtodo Descripcin


String String() Crea un objeto vacio
String String(String s) Crea un objeto a partir de otro
String String(char s[ ]) Crea un objeto a partir de un array de caracteres.
String String(char s[], int inicio, Crea el objeto empezando en el carcter indicado
int longitud) por inicio y con una longitud indicada por longitud
String String(byte s[ ], int inicio, Crea un objeto a partir de un array de bytes
int longitud) empezando el nuevo en el carcter que ocupa la
posicin inicio y de longitud longitud
String Sting (StringBuffer s) Crea un objeto a partir de un objeto de la clase
StringBuffer

Ejemplo de construccin de ejemplares de la clase String

public class Creacadenas{


public static void main(String args[]]{
//valores auxiliares
char matriz_char[] ={'U','n',' ','e','j','e','m','p','l','o'};
char matriz_byte[]={(byte)'U','(byte) n',(byte)' ', (byte)'e', (byte)'j', (byte)'e',
(byte)'m', (byte)'p','(byte)l',(byte)'o'};
StringBuffer sb=new StringBuffer(Cadena variables);
//Creacin de nuevas variables
//Asignacin directa
String ejemplo=Ejemplo;
//Cadena vacia
String cadena_vacia=new String();
//Cadena a partir de otra
String cadena_cadena=new String(ejemplo);
//Matriz a partir de una submatriz de char
String desde_sub_char=new String(matriz_char,3,4);
Cadena Unicode desde subcadena de bytes
String unicode_char=new String(matriz_byte,1,3);
// desde una cadena variable
String desde_sb=new String(sb);

6
Programacin Java Variables y String.

//Impresin de las cadenas


System.out.println(Ejemplos de creacin de ejemplares de String.\n\n
System.out.println(Asignacin directa: +ejemplo);
System.out.println( Cadena Vacia: +cadena vacia);
System.out.printl(Cadena de cadena: + cadena_cadena);
System.out.printl(Cadena a partir de una submatriz de char: +
desde_sub_char);
System.out.printl(Unicode desde subcadena: +unicode_char);
System.out.printl(Desde una cadena variable: +desde_sb);
} //fin main
} //fin class

Para realizar las operaciones sobre las cadenas de caracteres utilizamos los mtodos. Al
Par utilizar un mtodo perteneciente a un objeto se pone el nombre del objeto un punto
y nombre del mtodo, terminado con dos parntesis (tenga o no argumentos)
NombreObjeto.metodo();

La siguiente tabla muestra los mtodos ms utilizados de la clase String

Nombre del mtodo Tarea que realiza


char charArt(int indice) Extrae el carcter que esa en la posicin indicada
por indice
boolean equals(String texto) Investiga si dos cadenas son iguales

boolean equalsIgnoreCase(String t) Si dos cadenas son iguales ignorando la


diferencia entre mayusculas y minsculas
String toLowerCase() Convierte los caracteres de la cadena a
minsculas
String toUpperCase() Los convierte a maysculas

String trim() Elimina los espacios en blanco a la derecha y a la


izquierda
int indexOf( String) Retorna la primera ocurrencia de la cadena
recibida como argumento
int lastIndexOf(int ch) Retorna la ltima ocurrencia del carcter recibido
como argumento
String valueOf(double nmero) Retorna la cadena de caracteres que representa el
valor recibido como argumento.
String valueOf(char[] data) Retorna la cadena de caracteres recibida como

7
Programacin Java Variables y String.

argumento (lo mismo para int, float, char y


boolena)
String concat(String texto) Une a la cadena el texto recibido como
argumento
int compareTo(String texto) Compara dos cadenas y devuelve cero si el texto
es igual, menor de cero su el texto es menor que
el argumento tomados ambos en orden alfabtico
String substring(int inicio, int fin) Retorna la sub-cadena entre las posiciones inicio
y fin
String substring(int inicio) Devuelve la subcadena entre la posicion inicio y
el final

Crea el fichero Cadena.java


public class Cadena{
public static void main(String args[]){
String nombre;
nombre = "Francisco";
System.out.print("El nombre " + nombre +
" tiene " +nombre.length() + " caracteres \n");
System.out.print("El nombre " + nombre +
" tiene la letra 'a' en la posicin " +
nombre.indexOf("a") + "\n");
System.out.println("Empieza por: "+
nombre.substring(0,4));
System.out.println("Termina por: "+
nombre.substring(4));
}

public class Cadena2{


public static void main(String args[]){
String texto = "Gua para programadores Java 5";
System.out.println("La frase: \n" + texto);
System.out.println("En maysculas es:\n" + texto.toUpperCase());
System.out.println("En minsculas es:\n" + texto.toLowerCase());
}
}

Anda mungkin juga menyukai