Sei sulla pagina 1di 20

Java Fundamentals

Fundamentos del lenguaje Java

Objetivos:

Reconocer las sentencias de control de flujo de Java. Desarrollar aplicaciones bsicas en Java.

Temas:

2.1 Programacin en Java. 2.1.1 Comentarios. 2.1.2 Identificadores. 2.1.3 Tipos de variables y arreglos. 2.1.4 Operadores. 2.2 Control de flujo. 2.2.1 Sentencias repetitivas. 2.2.2 Sentencias condicionales. 2.2.3 Sentencias de transferencia. 2.2.4 Excepciones.

CIBERTEC

Captulo 2

Java Fundamentals

2.1 Programacin en Java


El lenguaje para la programacin en Java, es un lenguaje orientado a objetos, de una plataforma independiente. La programacin orientada a objetos, intenta simular el mundo real a travs del significado de objetos que contiene caractersticas y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generacin. Como su mismo nombre indica, la programacin orientada a objetos se basa en la idea de un objeto, que es una combinacin de variables locales y procedimientos llamados mtodos que juntos conforman una entidad de programacin. Java aade caractersticas muy tiles como el garbage collector (reciclador de memoria dinmica). Por lo tanto, no es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en accin, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentacin de la memoria. Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la informacin a travs de la red con tanta facilidad como a los archivos locales. Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaracin explcita de mtodos, reduciendo as las posibilidades de error. Tambin, implementa los arrays autnticos, en vez de listas enlazadas de punteros, con comprobacin de lmites, para evitar la posibilidad de sobrescribir o corromper memoria resultado de punteros que sealan a zonas equivocadas. Estas caractersticas reducen drsticamente el tiempo de desarrollo de aplicaciones en Java. Adems, para asegurar el funcionamiento de la aplicacin, realiza una verificacin de los byte-codes, que son el resultado de la compilacin de un programa Java. Es un cdigo de mquina virtual que es interpretado por el intrprete Java. No es el cdigo mquina directamente entendible por el hardware, pero ya ha pasado todas las fases del compilador: anlisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecucin de rdenes. El compilador de Java compila su cdigo a un archivo objeto de formato independiente a la arquitectura de la mquina en que se ejecutar. Cualquier mquina que tenga el sistema de ejecucin (Virtual Machine) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado. Actualmente existen Virtual Machine para Solaris, SunOs, Windows, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando en otras plataformas. Java ha recibido la herencia del lenguaje C++ en su construccin, tal as que sus tipos de operadores, instrucciones de control y otros ms siguen teniendo el mismo formato como veremos en lo que sigue de este captulo.

2.1.1 Comentarios

CIBERTEC

Java Fundamentals

Los comentarios en el cdigo de un programa son importantes para el mantenimiento futuro del mismo, as como para interpretar ms fcilmente una rutina compleja. Java tiene 3 tipos de comentario:

// //

Comentarios Comentariospara parauna unasola solalnea lnea

Todo lo que est a la derecha de // ser considerado comentario por el compilador de Java, y es eliminado en el archivo compilado (.class).

/* /* */ */

Comentarios Comentariosde deuna unao oms mslneas lneas

Todo lo que est entre /* y */ ser considerado comentario por el compilador de Java, y es eliminado en el archivo compilado (.class).

/** /** */ */
Comentario Comentariode dedocumentacin documentacin

Todo lo que est entre /** y */ ser considerado comentario por el compilador de Java, y permanece en el archivo compilado (.class). Usado normalmente para describir al desarrollador y a la aplicacin.

CIBERTEC

Java Fundamentals

2.1.2 Identificadores
Los identificadores nombran variables, mtodos, clases, objetos y otros que el programador necesite identificar o usar. En Java, un identificador comienza con una letra, un subrayado (_) o un smbolo de dlar ($). Los siguientes caracteres pueden ser letras o dgitos. Se distinguen las maysculas de las minsculas y no hay longitud mxima. Seran identificadores vlidos: nombreCliente _variable_del_sistema $transaccion Sin embargo, existen palabras claves del lenguaje que no pueden ser usadas como identificadores, ests son: abstract boolean break byte byvalue case catch char class const continue default do double else 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 transient true try void while

Tambin, hay palabras reservadas del lenguaje que no pueden ser usadas como identificadores, y son: cast operator future outer generic rest inner var

2.1.3 Tipos de variables y arreglos


De tipo entero Son variables que almacenan nmeros enteros. Se pueden dividir en los siguientes tipos:

CIBERTEC

Java Fundamentals

NOTA El tipo de variable en que se almacena por defecto un nmero entero es int. El valor por defecto asociado a cualquier variable entera no inicializada es 0.

De tipo real o de coma flotante Son variables que almacenan datos numricos con decimales. Se pueden dividir en los siguientes tipos:

NOTA El tipo de variable en que se almacena por defecto un nmero decimal es double. El valor por defecto asociado a cualquier variable real no inicializada es 0.0.

De tipo lgico o booleanas Son variables que almacenan dos posibles valores: true o false. No se corresponden con ningn valor numrico. Ejemplo: boolean tienesCalor = true;

De tipo carcter Son variables que almacenan caracteres individuales (letra). El carcter que se inicializa debe ir entre apstrofes o comillas simples 'a'. El cdigo de caracteres empleado por Java es Unicode y recoge los caracteres de prcticamente todos los idiomas importantes del mundo (son unos 65.536). Los caracteres Unicode del alfabeto occidental corresponden a los primeros 256 enteros; es decir van desde [0, 255].

CIBERTEC

Java Fundamentals

A cada carcter le corresponde unvocamente un nmero entero perteneciente al intervalo [0, 65536] o al de [0, 255] si se trabaja slo con el alfabeto occidental. Por ejemplo, la letra es el entero 164. Ejemplo: char miCaracter = 'n'; char miCaracter1 = 110; // le corresponde segn Unicode

char miCaracter2 = '\u006E'; // notacin Unicode Asociado a este tipo de variable se tienen las secuencias de escape. Se emplean para representar caracteres especiales (por ejemplo, unas comillas dentro de una instruccin que exige una cadena entrecomillada) y caracteres no imprimibles como el tabulador, salto de lnea, etc. Van precedidos del carcter contrabarra. Algunos de ellos se detallan en la tabla siguiente:

NOTA El valor por defecto asociado a cualquier variable char no inicializada es '\u0000'

Arreglos o Arrays Se pueden declarar en Java arrays de cualquier tipo: char[] s; int[] iArray; Incluso se pueden construir arrays de arrays: int[][] tabla = new int[4][5]; Los lmites de los arrays se comprueban en tiempo de ejecucin para evitar desbordamientos y la corrupcin de memoria. En Java un array es realmente un objeto, porque tiene redefinido el operador []. Tiene una funcin miembro: length. Se puede utilizar este mtodo para conocer la longitud de cualquier array. int[][] a = new int[10][3]; a.length; /* 10 */ a[0].length; /* 3 */ Para crear un array en Java hay dos mtodos bsicos. Crear un array vaco: int[] lista = new int[50];

CIBERTEC

Java Fundamentals
o se puede crear ya el array con sus valores iniciales: String[] nombres = { "Juan","Pepe","Pedro","Maria" }; Esto que es equivalente a: String[] nombres; nombres = new String[4]; nombres[0] = new String( "Juan" ); nombres[1] = new String( "Pepe" ); nombres[2] = new String( "Pedro" ); nombres[3] = new String( "Maria" );

2.1.4 Operadores
Existe una gran variedad de operadores en Java con los que podemos procesar nuestros datos, as tenemos:

Categora Aritmticos Lgicos Relacinales Asignacin Ternario

Operadores + - * / % ++ -&& || ! == != < > <= >= = += -= *= /= %= ?:

Aritmticos + * / % Adicin Sustraccin Multiplicacin Divisin Mdulo. Toma el residuo de una divisin de enteros. Ejemplo: 17%5 == 2; // Residuo de 17 entre 5 es 2 Se incrementa en uno. Ejemplo 1: int a, b; // Se declara dos enteros a y b a = 5; b = ++a; Ejemplo 2: int a, b; a = 5; b = a++; --

++

// a==6 y b==6

// a==6 y b==5

Decremento en uno. Contrario al anterior.

CIBERTEC

Java Fundamentals

Lgicos && Y (and) Ejemplo. Sean p y q 2 expresiones P v v f f q v f v f p && q v f f f

||

O (or) p v v f f q v f v f p || q v v v f

No (not) q v f

!q f v

Relacionales == Igual que Ejemplo: 3+4 == 7; Diferente que. Ejemplo: 5+6 != 7; Menor que Menor o igual que Mayor que Mayor o igual que

// 3 mas 4 es igual que 7, resulta true

!=

// 5 ms 6 es diferente de 7, resulta true

< <= > >=

Asignacin = += Asigna un valor Compacta una adicin. Ejemplo:

CIBERTEC

Java Fundamentals
a += 5; = // Es igual a poner a = a + 5;

Compacta una sustraccin. Ejemplo: x = 8; // Es igual a poner x = x - 8; Compacta un producto. Ejemplo: y *= 12; Compacta una divisin. Ejemplo: b /= 100; Compacta el mdulo.

*=

// Es igual a poner y = y * 12;

/=

// Es igual a poner b = b / 100;

%=

Ternario ?: Tiene tres operandos, cada uno de los cuales es una expresin; se ordena de la siguiente forma: expresin1 ? expresin2 : expresin3 El valor de la expresin completa equivale al de la expresin2 si la expresin1 es verdad, o al valor de la expresin3 en caso contrario. Ejemplos: ( 5>4 ) ? 1 : 2 // Toma el valor 1 ( 5<4 ) ? 1 : 2 // Toma el valor 2 ( x>y ) ? x : y // Toma el mayor entre x e y

Precedencia de operadores

++ ++ !! * * + + < < && && ? ?:: = =

--// -> > |||| *= *=

!! % % <= <= >= >= == == != !=

/= /=

%= %=

+= +=

-= -=

CIBERTEC

Java Fundamentals

10

Ejercicio N. 3
Desarrollar un proyecto calculadora, en la que use la clase Baldor creada en el captulo 1. Por lo tanto, aadir al nodo Libraries la biblioteca MiLib:

La interfase visual debe tener la siguiente presentacin:

Cdigo para las acciones actionPerformed de los botones:

CIBERTEC

Java Fundamentals

11

Ejercicio N. 4
Desarrollar un proyecto ventas, que permita detallar las compras de un cliente como muestra la imagen siguiente:

Debe usar la clase Baldor para sus clculos:

Declarar una variable global total al final de la clase, pero antes del ltimo cerrar llaves (})

CIBERTEC

Java Fundamentals

12

Programar en la accin acctionPerformed del botn:

CIBERTEC

Java Fundamentals

13

2.2 Control de flujo


Para dirigir el flujo de nuestros programas necesitamos instrucciones de control, estas se agrupan en 3 tipos: repetitivas, condicionales y de transferencia.

2.2.1 Sentencias repetitivas


Este grupo de sentencias permiten ejecutar un grupo (bloque) de instrucciones segn el valor de una condicin. Entre ellas tenemos: while, do y for. Instruccin while Presenta el siguiente formato:

while( condicin ) proposicin;


Su flujo grama es el siguiente:

condicin

false

true

proposicin

Por ejemplo, si quisiramos sumar los mltiplos de 7 de 2 dgitos, entonces tendramos como parte del cdigo de la aplicacin, el siguiente cdigo:

int suma = 0; int mult7 = 10; while( mult7<100 ) { suma += ((mult7 % 7) == 0) ? mult7 : 0; mult7++; } // En la variable suma tendremos el resultado
Instruccin do

CIBERTEC

Java Fundamentals
Presenta el siguiente formato:

14

do proposicin; while( condicin );

Su flujo grama es el siguiente:

proposicin

true

condicin

false

Esta sentencia a diferencia de la anterior no presenta condicin de entrada, pero si tiene condicin de salida. Por lo tanto, puede ser usada cuando no es necesario evaluar la entrada y queremos que de todas maneras ejecute el bloque de sentencias que forma su proposicin. Por ejemplo, si quisiramos saber cul es el primer mltiplo de 13 de 2 dgitos, entonces tendramos como parte del cdigo de la aplicacin, el siguiente cdigo:

int mult13 = 100; do { mult13++; } while( (mult13 % 13) != 0 ); // En la variable mult13 tendremos el resultado

CIBERTEC

Java Fundamentals
Instruccin for Presenta el siguiente formato:

15

for(inicializacin ; control; actualizacin) proposicin;

Su flujo grama es el siguiente:

inicializacin

control true proposicin

false

actualizacin

Es la nica instruccin que su parmetros estn separados por punto y coma (;) porque el primero (inicializacin) y el ltimo (actualizacin) pueden a su vez tener sub argumentos. Por ejemplo, en el siguiente cdigo, la variable str terminara con el siguiente contenido: x == 5, y == 1 x == 4, y == 2

// inicio de cdigo String str = ""; for(int x=5, y=1; x!=y; --x, ++y) { str += "x == " + x + ", y == " + y + "\n"; } // fin de cdigo

CIBERTEC

Java Fundamentals

16

Ejercicio N. 5
Desarrollar un proyecto notas, que permita seleccionar las 3 notas que tienen los alumnos y que se seleccionan de listas despegables, para imprimir el promedio respectivo, cuando se de clic en el botn Ver promedio:

Debe usar la clase Baldor y MsgBox:

Limpiar las listas y agregar notas:

Programar la accin del botn:

CIBERTEC

Java Fundamentals

17

2.2.2 Sentencias condicionales


Este grupo de sentencias permiten tomar decisiones en funcin a una condicin para desarrollar uno u otro bloque de sentencias. Entre ellas tenemos: if, else y switch. Instruccin if / else Presenta el siguiente formato:

if( condicin ) proposicin1; else proposicin2;

Su flujo grama es el siguiente:

true

condicin

false

proposicin1

proposicin2

opcional

Segn la verdad o falsedad de la condicin ejecuta la proposicin1 o la proposicin2, ambas representan a un bloque de sentencias.

CIBERTEC

Java Fundamentals

18

Ejercicio N. 6
Desarrollar un proyecto eCuadratica, que permita dar solucin a una ecuacin cuadrtica que puede tener solucin imaginaria o real. Imagen con solucin imaginaria:

Imagen con solucin real:

Use la biblioteca MiLib:

Programar en la accin actionPerformed del botn:

CIBERTEC

Java Fundamentals

19

Instruccin switch Presenta el siguiente formato:

switch ( var ) { case caso1 : accion1; break; case caso2 : accion2; break; ... case casoN : accionN; break; default : accionD; }

Donde: var Se evala a un dato ordinal (byte, short, int, long, y char) Las acciones accion1, ... son instrucciones sencillas o compuestas, Los casos caso1, ... son valores concretos del mismo tipo que var. Si se omite el break se realizan todas las instrucciones que corresponde a los valores que se encuentran a continuacin.

CIBERTEC

Java Fundamentals

20

2.2.3 Sentencias de transferencia


Este grupo de sentencias permiten transferir el flujo del programa a lneas no continuas de ejecucin. Entre ellas tenemos: break y continue.

Instruccin break Esta sentencia de transferencia solo se puede ejecutar dentro de una instruccin repetitiva y como proposicin de una condicional. Su pictogrfico sera el siguiente:

repetitiva { sentencia1; sentencia2; if (...) break; sentencia3; sentenciaN; }

Cuando se ejecuta break, automticamente la instruccin repetitiva termina, ya que break salta a la sentencia despus del bloque de la repetitiva.

Instruccin continue Al igual que la anterior, esta sentencia solo se puede ejecutar dentro de una instruccin repetitiva y como proposicin de una condicional. Su pictogrfico sera el siguiente:

repetitiva { sentencia1; sentencia2; if (...) continue; sentencia3; No se ejecutan sentenciaN; }


Cuando se ejecuta continue, las sentencias del 3 a la N son ignoradas, no se ejecutan, como si no estuvieses all.

CIBERTEC

Potrebbero piacerti anche