You are on page 1of 31

Java

Elementos del Lenguaje.

Elementos del Lenguaje

Tipos de Datos
Declaraciones
Ambitos de las variables
Operadores
Estructuras de control
Paquetes

Tipos de Datos

Tipos primitivos:
booleantrue o false
char
unicode! (16 bits)
byte
entero de 8 bits con signo.
short
entero de 16 bits con signo.
int
entero de 32 bits con signo.
long
entero de 64 bits con signo.
float,double IEEE 754 floating point

Otros tipos de datos.

Tipos compuestos
Clases
Arreglos

Los strings son soportados mediante una


clase built-in class denominada String.

Declaraciones

Declaracin de Variables
<tipo> <variable>;
<tipo> <var1>, <var2>, ..., <varn>;
<tipo> <var1> = <valor>;

Ejemplos

int x,y,z;
int x = 9;
boolean terminar = false;
Cliente CL = new Cliente();

Asignaciones

Asignaciones
<tipo> <variable> = <valor>;
<tipo> <variable>;
<otras instrucciones>...
<variable> = <valor>;

Ejemplo
int x = 4; //Declaracion con asignacin
x = 9;
//Se asume que x est definida
c1 = new Cliente(); //Se asume que Cliente
//y c1 estn definidos

Operador de asignacin ( = )

El valor de la derecha del operador de asignacin debe


ser compatible con el operador de la izquierda.
x = y;
x = 12;

Conversiones de tipos

Conversin entre los tipos enteros y


punto flotante.
Incluye char

No hay conversin automatica con el


tipo boolean!
Las conversiones se pueden forzar
mediante una operacin de casting
con la misma sintaxis de C/C++.
int i = (int) 1.345;

Operador de asignacin
public class Asignaciones
{
public static void main(String args[ ])
{
int x= 9;
double y = 9.0;
//No es posible que un entero contenga un doble
//es necesario hacer un casting
x = (int)y;
//pero se pierde precisin.
//asignacin vlida
y = x;
String s = "c";
char c;
c = s; //asignacin no vlida. Los datos no son compatibles
}
}

public class ejemplo1 {


public static void main(String[] args) {
int i = 9,k;
Float j = 47.9F;
System.out.println(i: +i + j: +j);
k = (int)j; //empleo de un cast
System.out.println(j: + j + k: +k);
j = k;//no necesita cast
System.out.println(j: + j + k: +k);
float m = 2.3F;
//float m = 2.3; dara error al compilar.
System.out.println(m: +m);
}
}

Alcances y Bloques

{
int x = 12;
/* solo x disponible */
{
int q = 96;
/* x y q disponible */
}
/* solo x disponible */
/* q fuera de mbito */
}

Precedencia de Operadores

()
*

<

<=

==
=

!=

>

>=

Precedencia de Operadores

public class PrecedenciaOperadores


{
public static void main(String args[])
{
//preced1 y preced2 ofrecen resultados diferentes
int preced1= 4 + 6 * 2;
int preced2 = (4 + 6) * 2;

double preced3 = 15/2 + 14/6;


/*
cuando hay operadores de igual precedencia
se analizan de izquierda a derecha
*/
double preced4 = 4*5/2;
double preced5 = 4*(5/2); //El resultado es 8.0 por qu?
// 5 y 2 son enteros!!
double preced6 = 4*(5.0/2);
}
}

Operadores Unarios

Requieren solo un operando.


++
-=
*=
/=
%=
+=
-=

public class Unarios


{
public static void main(String args[])
{
double valor1=9;
valor1++;// valor1 = valor1+1;
double valor2=3;
valor2--;//valor2 = valor2 - 1;
valor1 *= valor2; //valor1 = valor1*valor2;
valor1 /= valor2; //valor1 = valor1/valor2;
valor1 += valor2; //valor1 = valor1+valor2;
valor1 -= valor2; //valor1 = valor1-valor2;
valor1 = 2;
valor2 = 1+valor1++; //El resultado es 3 por qu?
valor1 = 2;
valor2 = ++valor1 + 1; //El resultado es 4 por qu?
}
}

Estructuras de Control

Su propsito es definir el flujo lgico del


procedimiento.
Estructuras de Control:
Secuencia
Decisin
Repeticin

Solo se pueden dar en los mtodos


(programacin orientada a objetos)

Estructuras de Control

Secuencia: es la ms bsica. Las acciones se ejecutan en


secuencia hasta que todas se ejecuten.
Decisin (Seleccin): De acuerdo a una condicin se escoge una
opcin para ejecutarse. Hay dos tipos:
Estructuras If-else
Estructuras switch
Repeticin: ejecutar repetidamente un conjunto de instrucciones.
Ciclo for
Ciclo while
Ciclo do-while.

if-then-else
public class if_the_else
{
public static void main(String args[])
{
int a=9;
int b=1;
if(a>b)
System.out.println(a+" mayor que "+b);
else
System.out.println(b+" mayor que "+a);
System.out.println("no pertenezco al if, ni al else");
if(a>b)
System.out.println(a+" mayor que "+b);
else
{
System.out.println(b+" mayor que "+a)
System.out.println("pertenezco al else");
}
System.out.println("no pertenezco al if, ni al else");
}
}

If-then-else
public class If_anidados
{
public static void main(String args[])
{
int a=9;
int b=1;
int c=3;
if(a>b)
if(c>b)
System.out.println("a es el mayor");
}
}

Switch
public class PruebasClase
{
public static void main(String args[])
{
char a = 'a';
char p = 'p';
char solucion = a;
switch(solucion)
{
case 'a':
System.out.println("se aprobo");
break;
case 'p':
System.out.println("se perdio");
break;
default:
System.out.println("ni se pierde ni se gana");
break;
}
}
}

Ciclo for
Recomendable cuando hay un nmero definido de repeticiones.
public class PruebasClase
{
public static void main(String args[])
{
int[ ] vector = new int[10];
// 10 repeticiones
for(int i=0 ; i<10 ; i++)
vector[ i ] = i;
}
}

Ciclo while

Recomendable cuando no se conoce de antemano el nmero


de repeticiones.
public class PruebasClase
{
public static void main(String args[])
{
int a=0;
while ( a < 7)
a++;
System.out.println(a);
while ( a <= 7 )
{
a++;
System.out.println(a);
}
}
}

Ciclo do

Se asegura al menos una ejecucin.


public class PruebasClase
{
public static void main(String args[])
{
int i=0;
do
i++;
while ( i < 10 );
}
}

Errores Comunes

If ( a = b)
No inicializar la variable de control.
public class PruebasClase
{
public static void main(String args[])
{
int i; // variable no inicializada
while(i<9)
i++;
}
}

Errores comunes

Ciclos infinitos.
public class PruebasClase
{
public static void main(String args[])
{
int i=0;
while(i<9)
System.out.println("Ciclo infinito");
}
}

Errores comunes

If ( a == b ) ;
for ( int a = 0 , a < 9 , a++)

Comentarios

// comentario
Los caracteres desde // hasta el final de la lnea
son ignorados.
/* comentario */
Los caracteres entre /* y */ son ignorados
/** comentario */
Los caracteres entre /** y */son ignorados y se
incluyen en la generacin autmatica de la
documentacin.

Identificadores

Nombre dado a una variable, un mtodo o una


clase.
Comienzan con una letra Unicode (incluyendo _
and $) y seguido de letras y digitos.
Pueden ser de cualquier longitud.
Ejemplos:
Apellido
Hora
$PorMenos

Paquetes

Se usan para encapsular los datos de


manera automtica.
Los paquetes de clases se cargan con la
palabra clave import.
Ejemplo:
import java.Date;
import java.awt.*;
import miPaquete.miClase;

Para qu sirven los paquetes?

Para agrupar clase relacionadas.


Para evitar conflictos de nombres.
En caso de conflicto de nombres entre
clases importadas, el compilador obliga a
cualificar los nombres de dichas clases
con el nombre del paquete.
Para ayudar en el control de
accesibilidad de clases y miembros.

la

Al crear un paquete, debe existir directorio con el


mismo nombre que el paquete y dentro de l el
fichero .class correspondiente (es decir
MiClase.class).
En classpath, ya sea la variable de entorno o la
opcion -cp, tenemos que poner el directorio padre
del directorio (paquete) . Es decir, si tenemos
/users/chuidiang/MI_PROYECTO/PAQUETE_1,
en
classpath
debe
ponerse
/users/chuidiang/MI_PROYECTO.

You might also like