You are on page 1of 31

FUNDAMENTOS DE JAVA

MODULO 1

Indice
Comentarios Tipos Bsicos Envoltorios(Wrappers) Variables Estructuras de control

Primera Aplicacin
HolaMundo.java

Comentarios
// comentarios para una sola lnea /* comentarios de una o ms lneas */ /** comentario de documentacin, de una o ms lneas */ Ejemplo: DocumentacionApp.java

Documentacion
Herramienta javadoc @see: Referencia a otras clases @version: Informacin de la versin @author: Informacin del autor @param: Parmetro y descripcin @return: Descripcin @exception: Nombre de la clase y descripcin @deprecated

Elementos de una aplicacin


Sentencias: lnea simple de cdigo terminada en un punto y coma. Bloque: conjunto de sentencias agrupadas entre llaves. Identificadores: nombres unvocos que se le dan a las clases, mtodos y variables. Variables:
Contenedor de datos identificado mediante un nombre (identificador). Utilizado para referenciar el dato que contiene. Debe llevar asociado un tipo que describe el tipo de dato que guarda.

Ejemplo: SentenciasApp.java

Tipos Primitivos
Enteros Coma Flotante Caracteres Lgicos

Ejemplo: Tipos.java

Tipos de datos lgico


La `palabra clave' es: boolean. Sus posibles valores son:
true False

Su valor por defecto es:


false

Ejemplos:
boolean switch1 = true; boolean switch2;

Tipos de datos carcter


La `palabra clave' es: char. Representa un carcter UNICODE. Su tamao es: 16 bits (2 bytes). Sus posibles valores son:
Un carcter entre comillas simples: `a'. Un carcter especial con \ por delante: `\n', `\t', etc. Un cdigo UNICODE: `\uxxxx' (donde xxxx es un valor en hexadecimal).

Tipos de datos carcter


Su valor por defecto es:
`\u0000' > nul.

Ejemplos:
char letra1 = `a'; char letra2 = `\n'; char letra3 = `\u0041'; char letra4;

Existe un tipo complejo para las cadenas de caracteres: la clase String. Nota_v5.0 Soporta UNICODE 4.0 que define algunos caracteres que no caben en 16 bits por lo que se necesita un int para representarlos (o dos char dentro de un String).

Tipos de datos enteros


Las `palabra claves' son: byte, short, int y long. Sus tamaos son:
byte: 8 bits (1 byte), por tanto: 128 a 127. short: 16 bits (2 bytes), por tanto: 32768 a 32767 int: 32 bits (4 bytes), por tanto: 2147483468 a 2147483467 long: 64 bits (8 bytes), por tanto: enorme a enorme

Sus posibles valores son:


Un valor decimal entero: 2 (por defecto int) o 2L (long). Un valor octal: 077. Un valor hexadecimal: 0xBAAC

Tipos de datos enteros


Su valor por defecto es:
0 (cero)

Ejemplos:
byte unByte = 12; short unShort; int unInt = 199; long unLong = 2; (o long unLong = 2L;) long otroLong = 0xABCD; int otroInt = 065;

Tipos de datos reales


Las `palabra claves' son: float y double. Sus tamaos son:
float: 32 bits (4 bytes). Su precisin vara segn plataforma. double: 64 bits (8 bytes). Su precisin tambin vara.

Sus posibles valores son:


Un valor decimal entero: 2 (por defecto int). Un valor decimal real: 0.17 o 6.02E23 (por defecto double). Un valor decimal real: 0.17F o 0.17D (redundante).

Tipos de datos reales


Su valor por defecto es:
0.0 (cero)

Ejemplos:
float unFloat = 0.17F; double unDouble; double otroDouble = 12.01E30;

Conversiones entre tipos


Existen cuatro entornos de conversin en Java:
Promocin aritmtica. (ej: short a int a float). Asignacin. (ej: long l = 42;). Llamada a mtodos con parmetros. (ej: f(long p) > f(5)). Casting. (ej: int i = (int)42L).

Las conversiones implcitas se resuelven en tiempo de compilacin. El upcasting se realizan implcitamente. El downcasting se realizan explcitamente y se resuelve en tiempo de ejecucin.

Wrappers de tipos primitivos


Hay ocasiones en las que necesitaramos usar un tipo primitivo como un objeto (tipo complejo). Por ejemplo:
Cuando queremos guardar nmeros en una coleccin que solo admite java.lang.Object Cuando queremos leer un entero por teclado.

En el paquete java.lang.* existe un wrapper para cada tipo primitivo (no siempre coincide el nombre):
Boolean Byte, Short, Integer, Long Float, Double

Wrappers de tipos primitivos


Casi siempre, suelen tener los siguientes mtodos:
Constructores que recibe un String o el tipo primitivo que representan: Integer a = new Integer(3); Convertidores de tipo String a su tipo complejo (wrapper): Integer b = Integer.valueOf(3); Convertidores de tipo String al tipo primitivo que representan: int c = Integer.parseInt(3); Convertidores de tipo primitivo a String: String d = Integer.toString(c); Extractores del tipo primitivo que representan: int e = b.intValue();

Wrappers de tipos primitivos


Todas estas conversiones son susceptibles de producir errores. Qu pasara si se intenta crear un Integer utilizando Hola como parmetro? Siempre que la conversin no sea posible, la JVM lanzar una excepcin del tipo:
java.lang.NumberFormatException

Ya veremos como capturar y manejar este tipo de errores en el captulo dedicado a las excepciones.

Wrappers de tipos primitivos


Todos los wrappers sobreescriben el mtodo equals de la clase java.lang.Object. De esta forma, podemos saber si dos objetos distintos de un mismo tipo de wrapper, representan el mismo valor primitivo o no. Ejemplo:
Integer i1 = new Integer(3); Integer i2 = new Integer(3); System.out.println(i1 == i2); False System.out.println(i1.equals(i2)); True

Mtodos de las clases Wrapper:


Mtodos estticos para crear tipos primitivos a partir del valor de cadenas:
tipo = Clase.parseXXX(String valor)

Mtodos de instancia para extraer el dato numrico del envoltorio:


tipo = obj.XXXValue()

Veremos ms mtodos en el captulo de paquetes Ejemplo: WrapperTest.java

Tipo de dato complejo (Clases)


La `palabra clave' es el nombre de la clase del objeto que va a contener la variable. Posibles valores:
Referencias a objetos (o instancias) en memoria.

Su valor por defecto es:


null

Ejemplos:
String unString = new String(``Hola''); String otroString;

Estructura de una clase


Nombre y modificadores de acceso
Publico public. Privado private.

Atributos Estado (Esttico) Mtodos Comportamiento (Dinmico) Instanciacin : new

Operadores
Los operadores (op) realizan funciones sobre uno, dos o tres operandos. Por tanto tenemos:
Operadores unarios: pueden ser prefijos o postfijos.

OP operando u operando OP (Ejemplo: contador++). Ejemplo: OperadoresUnariosTest.java


Operadores binarios.

operando OP operando (Ejemplo: contador + 1).


Operadores ternarios.

operando ? operando : operando Los operadores siempre devuelven un valor que depende del operador y del tipo de los operandos.

Operadores Binarios
Los operadores binarios se pueden dividir en las siguientes categoras:
Aritmticos: +, -, *, /, % Relacionales: <, >, ==, <=, >=, != Condicionales, logicos: &&, ||, ! De desplazamiento: <<, >>, >>> De asignacin: =, +=, -=, *=, etc Otros.

Sentencias de control de flujo


Sin las sentencias de control de flujo, el cdigo Java se ejecutara linealmente desde la primera lnea hasta la ltima. Existen cuatro tipos de sentencias:
Bifurcaciones: ifthenelse y switchcase. Bucles: while, dowhile, for y for/in(v5.0). Gestin de excepciones: trycatchfinally y throw. De ruptura: break, continue, label: y return.

Sentencias while y dowhile


La sentencia while se utiliza para ejecutar continuamente un bloque de cdigo mientras que la condicin del while sea true.
while(expresin) { sentencias; }

La sentencia dowhile es parecida a la sentencia while pero asegura que como mnimo el bloque de cdigo se ejecuta una vez.
do { sentencias; } while(expresin);

Sentencia for
La sentencia for facilita la ejecucin de un bloque de cdigo un nmero determinado de veces.
for(inicializacin; terminacin; incremento) { sentencias; }

Nota: las variables definidas en la sentencia de inicializacin son locales al bloque. Por tanto dejan de existir una vez se haya terminado el bucle. Ejemplo: Bucles.java

Sentencia ifthenelse
La sentencia ifthenelse permite elegir qu bloque de cdigo ejecutar entre dos posibilidades.

Sentencia switch
La sentencia switch es un caso particular de la sentencia ifthen else ifelse. Evala una expresin del tipo int o que pueda ser convertida a int de forma implcita.
switch(intExpresin) { case intExpresin: sentencias; break; ...... ...... default: sentencias; }

Ejemplo: TestSwitch.java

Sentencias de ruptura
Break: sirve para detener la ejecucin tanto de los bucles como de la sentencia switch. Y por tanto saltar a la siguiente lnea de cdigo despus del bucle o switch. Continue: sirve para detener la ejecucin del bloque de cdigo de un bucle y volver a evaluar la condicin de este. Return: sirve para finalizar la ejecucin de un mtodo.

Ejercicios
Realice una aplicacin llamada ejercicio1 que dado un nmero devuelva si es primo o no. Realice una aplicacin java llamada ejercicio2 que muestre por pantalla los primos del 1 al 1000. Realice una aplicacin llamada ejercicio3 que dado un ao diga si es o no bisiesto. Realice una aplicacin llamada ejercicio4 que devuelva los aos bisiestos ente 2000 y 2100 Realice una aplicacin llamada ejercicio5 que muestre por pantalla el alfabeto en minscula y diga si es vocal o consonante.

You might also like