martes, 20 de enero de 2009

PALABRAS RESERVADAS


Las palabras reservadas son aquel grupo de identificadores (palabras), que no pueden ser utilizadas por el usuario para nombrar a las variables, funciones, procedimientos u objetos que este crea.
Public: Palabra que significa que cualquier variable declarada después de esta sentencia será publica y por lo tanto podrá ser usada por cualquier objeto.

Static: Static es un modificador de acceso el cual significa que es un metodo de clase.

Void: Modificador de acceso que significa que no regresa ningún valor.

Main: Método el cual significa que es el lugar donde empieza una aplicación sin el no se puede ejecutar un programa en Java, ya que por lo menos debe existir un método main para realizar la ejecución.

Ejemplo:

public static void main( String arg[ ] )
public static void main( String[ ] args )


New: Palabra reservada que se utiliza para instanciar un objeto.

Ejemplo:
Libro uno = new Libro();

Null: Palabra reservada que se refiere a un valor nulo, es decir que esta vacio.

Ejemplo:
Libro uno = new Libro();
Libro dos = new Libro();
Libro tres = null;

En estas sentencias las primera dos estan apuntando hacia un objeto de tipo libro mientras que el objeto tres apunta hacia vacio es decir no guarda una referencia de direccion de memoria.

TIPOS PRIMITIVOS

Los tipos primitivos en Java son consideradas palabras reservadas y pueden separarse en:

Boléanos: Guardan solo 2 valores falso(false) y verdadero(true) y a diferencia de otros lenguajes estos no representan el valor 1 o 0.

Ejemplo:

public class Test {
public static void main( String args[] ) {
boolean flag = false;
if( flag = true ) {
System.out.println( "verdadero" );
}
}
}
Se imprime verdadero en la salida debido a que en la primera condición la variable flag que era falsa se iguala a true y por lo tanto haciéndose verdadera esta condición.

Enteros: Guardan solamente valores enteros como su nombre lo indica.

Ejemplos:

Byte: Entero de 8 bits que tiene un rango de -128 a 127

Public class Test
{
public static void main( String [ ]args )
{
int i = 100; byte b = i; System.out.println( b );
}
}

Como el tipo byte tiene una capacidad de almacenamiento de hasta 127 el número 100 si puede contenerlo.

Short: Entero de 16 bits que tiene un rango de -32768 a 32767

Int: Entero de 32 bits que tiene un rango de -2147483648 a 2147483647

int x = 3; int y = 10;
System.out.println( y % x );

La respuesta es uno (1) debido a que el operador modulo guarda lo que viene siendo el residuo de la división.


Long: Entero de 64 bits que tiene un rango de -2-63 a 263 – 1.

public class Test {
public static void main ( String[ ] args ) {
byte b=1;
long a=1000;
b += a;
}
}
Se ejecuta y se compila sin ningun error pero el resultado es -23 ya que el tipo byte no puede guardar tantos valores como el tipo long.
Flotantes: Variables de tipo entero pero que además guardan puntos decimales.


Ejemplos:

Float: Entero de 32 bits con punto flotante (6 dígitos significativos).
public class Test {


public static void main(String[] args) {
float f = 10/2.3f;
System.out.println( f );
}
}
Se realiza la división pero al número 2.3 se le tiene que poner una f para determinarla como punto flotante de lo contrario marcara un error al momento de compilar el programa.

Double: Entero de 64 bits (15 dígitos significativos).

public class Test {
public static void main( String args[ ] ){
double d1 = 1.0;
double d2 = 0.0;
byte b = 1;
d1 = d1 / d2;
b = (byte)d1;
System.out.println( b );
}
}
Se esta utilizando el casting debido a que el tipo byte no maneja el punto flotante como lo es el double y no puede contener tantos números en este caso el infinito, signa el valor de -1 a la división.

Char: No es punto flotante pero comprende el código ASCII (16 bits).

public class Test {
public static void main ( String[ ] args ) {
char a = '\u002a'; //Asterisco 42
char b = '\u0024'; // Signo Dólar 36
System.out.print( a + b );
System.out.print( " ABC" + a + b );
}
}

Se realiza tanto la suma del numero 42 y 36 ya que el tipo char puede guardar tanto numeros como caracteres debido a que comprende el codigo ASCII, pero concatena con la cadena “ABC”. Resultado = 78 ABC*$.
CONDICIONES Y CICLOS

IF: Condición en la cual se tiene que cumplir con lo definido dentro de ella para que realice una determinada operación.
IF-ELSE: Condición que tiene como una diferencia del if que si no se llega a cumplir la primera condición se ejecuta la opción determinada por el bloque else.

Ejemplos:

int a = 20;
int b = 4;
if( a == b * 5 ) {
a = b;
b = a + b;
}
System.out.println( "a = " + a );
System.out.println( "b = " + b + 2 );

En este caso existe un operando lógico que denota igualdad por lo tanto se cumple la siguiente condición (a == b * 5) es decir 20 = 4*5 por lo tanto a se iguala a b y ahora vale 4 y en b se realiza la suma b = a + b es decir b = 4 + 4 por lo tanto el resultado es 8.

int x = 7;
if( x > 7 ) {
System.out.print( "Ganaste " );
}
else {
System.out.print( "Perdiste " );
}
System.out.println( "el gran premio del millón." );

Debido a que 7 no es mayor que 7 no entra a la primera condición pero se ejecuta la siguiente instrucción “Perdiste el gran premio del millón”.

Switch: Sentencia parecida al if ya que es utilizada cuando se quiere comparar una sola variable con varios valores diferentes.

Break: sentencia que detiene la ejecución de una operación, por lo general se encuentra en la sentencia switch.

Case: Casos los cuales se ejecutaran si lo que esta dentro de la sentencia switch corresponde al mismo.

Default: Palabra reservada utilizada en la sentencia switch para denotar que no se coincidió con ninguno de los case presentados.
Ejemplo:

int i = 1;
switch ( i ) {
case 0: System.out.println( "cero" );break;
case 1: System.out.println( "uno" );
case 2: System.out.println( "dos" );
default: System.out.println( "default" );
}

Aunque la variable i tiene un valor de 1 al momento de utilizar el switch entra en el case 1 pero como no existe algo que detenga esta sentencia como es el caso de la palabra break, entonces se sigue ejecutando y es por eso que se imprime uno,dos, default.


WHILE: Sentencia la cual se esta ejecutando mientras se cumpla con la sentencia determinada en el bloque while.

Ejemplo:

m = 0;
while ( m++ <>M esta inicializada en 0 while m sea menor que 2, entonces 0 es menor que 2 si entonces entra e imprime 1, vuelve a entrar 1 es menor que 2 si entonces se imprime el 2, regresa 2 es menor que 2 no, no entra y termina imprime nada mas 12.


DO-WHILE: Sentencia similar a la sentencia while con la unica diferencia de que esta se ejecuta por lo menos una vez.

public class Test {
public static void main ( String[ ] args ) {
int i = 0, j = 9;
do {
i++;
if ( j-- <>
{
break;
}
}
while ( i <>
System.out.print( i + "," + j );
}
}
Int vale 0 pero se esta aumenta en uno cada vez que se entra al ciclo por lo tanto i = 1 entra al if si j—es decir j vale 9 es menor que 1 no, ahora i vale 2 dos es menor que 5 si vuelve a entrar i vale 3 8<3 j =" 7" i =" 4," j =" 6" i="6">

Continue:
Palabra reservada solo valida dentro de un ciclo la cual permite saltarse la ejecución que sigue a continuación.

Ejemplo:

public class Test
{
public static void main( String[ ] args )
{
for( int i = 0; i <>
{
continue;
System.out.println( "Hola mundo " );
}
}
}
Sucede un error de compilación ya que la sentencia continue se utiliza para controlar los ciclos por lo cual cualquier operación que vaya después de esta sentencia automáticamente se ignorara es por eso que marca error de compilación nunca se llega a la parte de la impresión del Hola Mundo, se arreglaría este problema si el Hola Mundo estuviera antes de la sentencia continue.
FOR: Ciclo de los mas utilizados ya que se utiliza para repetir una secuencia de instrucciones, sobre todo si se conoce la cantidad exacta de veces que se requiere ejecutar la instrucción.

Ejemplo:

int suma = 0;

for( int i = 5; i > 0; i-- )
{
suma = suma + i * i;
}

Se entra al ciclo 5 es mayor que 0 suma = 0 + 5*5, ahora i vale 4, 4 es mayor que cero, suma = 24 + 4*4, i vale 3, 3 mayor que 0, suma = 41 + 9, i vale 2, 2 mayor que 0 si, suma = 50 + 4, i vale 1, 1 mayor que 0 si, suma = 54 + 1, i vale 0, 0 ya no es mayor que 0, no entra por lo tanto el resultado
de la suma = 55.

FINAL:
En una aplicación posiblemente nos encontremos con algún valor que permanece constante durante la ejecución.Podemos agregar a la definición de variable el modificador final. La sintaxis es la siguiente:
final tipo_variable nombre de variable [= valor];

Por ejemplo:

final int unaConstante = 10;

TRY & CATCH: Try se utiliza cuando se desean preveer excepciones en el transcurso de
la ejecución de un programa. Es necesario ya que ahí se colocan las
instrucciones que se desean realizar pese a la excepcon, posteriormente
se usa un catch donde se especifica la excepción que se sabe puede
ocurrir.
try
{
/*Instrucciones
a realizar*/
}
catch(parametros)
{
/*Imprimir reporte de excepcion*/
}

IMPORT: Se utiliza en java por lo general para importar una clase individual.
PACKAGE: Se utiliza en java para importar paquetes.

package nombrePaquete;
import java.io.*;
public class MiClase{
//miembros dato
//funciones miembro
}

En este caso se utiliza el import java.io por que define la Entrada/Salida de datos.

SYNCHRONIZED: La palabra reservada synchronized se usa para indicar que ciertas
partes del código,están sincronizadas, es decir, que solamente un subproceso puede acceder a dicho método a la vez.

Ejemplo:

synchronized public void funcion1(){
//...
}

public void funcion2(){
Rectangle rect;
synchronized(rect){
rect.width+=2;
}
rect.height-=3;
}
EXTENDS: Se utiliza en java para determinar la herencia es decir cuando se tiene una clase base de la cual se pueden derivar otras clases.

Ejemplo:

public abstract class Animal {
public abstract void habla();
}

class Perro extends Animal{
public void habla(){
System.out.println("¡Guau!");
}
}

class Gato extends Animal{
public void habla(){
System.out.println("¡Miau!");
}
}
Creamos una clase abstracta denominada Animal de la cual deriva las clases Gato y Perro. Ambas clases redefinen la función habla declarada abstracta en la clase base Animal.

INTERFACE:
Un interface es una colección de declaraciones de métodos (sin definirlos) y también puede incluir constantes.

Ejemplo:

public interface Runnable {
public abstract void run();
}
Runnable es un ejemplo de interface en el cual se declara, pero no se implemementa, una función miembro run.

ABSTRACT:
Una clase abstracta puede incluir métodos implementados y no implementados o abstractos, miembros dato constantes y otros no constantes.

THIS: hace referencia a los miembros de la propia clase en el objeto actual; es decir, this se refiere al objeto actual sobre el que esta actuando un metodo determinado y se utiliza siempre que se quiera hace referencia al objetoactual de la clase.

SUPER:
Si se necesita llamar al metodo padre dentro de una clase que ha reemplazado ese metodo, se puede hacer referencia al metodo padre con la palabra reservada super.

Ejemplo:
import MiClase;
public class MiNuevaClase extends MiClase {
public void Suma_a_i( int j ) {
i = i + ( j/2 );
super.Suma_a_i( j );
}
}
THROW: Esta determina la excepcion automaticamente.

THROWS: Se pone al principio de un metodo especificando que tipo de excepcion
puede ocurrir. Estas deben estar dentro de un try y catch.

Por ultimo estan las siguientes palabras reservadas que a pesar de estar reservadas no se utilizan en el lenguaje Java.
GOTO & CONST.