Académique Documents
Professionnel Documents
Culture Documents
Introduccion a Java.
El lenguaje de programacin Java fue originalmente desarrollado por James Gosling de Sun
Microsystems (la cual fue adquirida por la compaa Oracle) y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran
medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las
aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse
en cualquier mquina virtual Java (JVM) sin importar la arquitectura de la computadora
subyacente.
Java es un lenguaje orientado a objetos de propsito general. Aunque Java comenzar a ser
conocido como un lenguaje de programacin de applets que se ejecutan en el entorno de un
navegador web, se puede utilizar para construir cualquier tipo de proyecto.
En el listado del Ejemplo 1-1 se muestra el tpico primer programa. Cpialo a un fichero que lleve
por nombre HolaJava.java.
Una de las primeras cosas que hay que tener en cuenta es que en Java se distingue entre
maysculas y minsculas. La primera lnea es la declaracin de una clase pblica llamada HolaJava.
Slo puede haber una clase pblica en un fichero con extensin java. Esta clase contiene un nico
mtodo main que es tambin pblico, no devuelve ningn valor y recibe un array de tipo base
String. La nica instruccin con la que cuenta main es System.out.println que sirve para mostrar
mensajes de texto por pantalla.
La clase que contenga el mtodo main es la clase principal de la aplicacin, y es en ese mtodo
donde se inicia la ejecucin de la aplicacin.
Lenguaje de programacin JAVA Pg. 2
Recomendaciones
En Java existen ciertas reglas de codificacin que son comnmente utilizadas por los
programadores. Conviene conocer y seguir estas reglas.
Sintaxis de Java.
Presentaremos las construcciones bsicas del lenguaje Java. Mostrando los tres tipos de
comentarios que proporciona Java. Los comentarios de documentacin resultan de especial
importancia a la hora de comentar cdigo.
Comentarios
Comentarios de documentacin.
/** Los comentarios de documentacin se comentan de este modo */
Identificadores
En Java los identificadores comienzan por una letra del alfabeto ingls, un subrayado _ o el
smbolo de dlar $, los siguientes caracteres del identificador pueden ser letras o dgitos.
Ningn identificador puede llevar el nombre de una palabra reservada.
En Java existen adems de objetos tipos de datos primitivos (int, float, etctera). Al contrario que
en C o C++ en Java el tamao de los tipos primitivos no depende del sistema operativo o de la
arquitectura, en todas las arquitecturas y bajo todos los sistemas operativos el tamao en
memoria es el mismo. En la Tabla 3-1 se muestran estos tamaos.
Lenguaje de programacin JAVA Pg. 3
Tipo Definicin
boolean true o false
char Carcter Unicode de 16 bits
byte Entero con signo de 8 bits
short Entero signo de 16 bits
int Entero con signo de 32 bits
long Entero con signo de 64 bits
float Real en punto flotante de 32 bits
double Real en punto flotante de 64 bits
Es posible recubrir los tipos primitivos para tratarlos como cualquier otro objeto en Java. As por
ejemplo existe una clase envoltura del tipo primitivo int llamado Integer. La utilidad de estas clases
envoltura quedar clara cuando veamos las clases contenedoras de datos.
Operadores.
Java tiene prcticamente los mismos operadores que C++. En la Tabla se muestran todos los
operadores de Java, y una pequea descripcin.
Potencias y races
Para resolver los problemas de potencias y races, se usan ciertas instrucciones especiales que proporciona
el lenguaje, llamadas funciones matemticas, en java existe toda una librera de instrucciones o funciones
matemticas.
Lenguaje de programacin JAVA Pg. 4
Recordar que todas las funciones reciben uno o ms datos o valores y regresan siempre un resultado, una
de estas funciones matemticas es:
Lenguaje de programacin JAVA Pg. 5
Ejemplo:
Programa que realiza operaciones matemticas bsicas de: suma, resta, multiplicacin,
divisin, potencia y raz cuadrada
package Matematicas;
import java.lang.Math;// ruta paga llegar a la clase Math(clase Math pertenece al paquete java.lang)
public class Matematicas {
public static void main(String[] args) {
int n1,n2;
float s,r,m,d;
double p,raizcuadrada;
n1=10;n2=2;// asignando valores a n1 y n2
s=n1+n2;
r=n1-n2;
m=n1*n2;
d=n1/n2;
p = Math.pow(n1,n2);//Potencia n1 elevado a n2
}
Lenguaje de programacin JAVA Pg. 6
En la siguiente imagen puedes ver el cdigo de una sencilla aplicacin Java que realiza una serie
de preguntas indiscretas al usuario, ( nombre, edad, direccin ), almacena las respuestas
en variables y finalmente las imprime en pantalla.
1. En primer lugar escribimos el cdigo import java.util.Scanner; para poder utilizar la clase
Scanner y sus propiedades dentro de nuestro programa.
3. A continuacin declaramos el tipo de valores que guardarn las variables edad, nombre y
direccin. La primera se define como int, y se encarga de guardar un numero entero ( la edad
del usuario ). La segunda y tercera contendrn cadenas de caracteres, en Java este tipo de
variables se declaran con la palabra reservada String.
6. Argumentos utilizados
%s : para cadenas
%o : Octal
%h :Hexadecimal
Clase BufferedReader
Uno de los mtodos para la peticin de datos a un usuario es el BufferedReader el cual nos
permitir "interactuar" con el usuario a travs de la consola de comandos.
1. import java.io.* : indica a java donde encontrara las clases incorporadas BufferedReader y
InputStreamReader
2. throws Exception: lanza excepcin (control de errores) cuando el usuario no ingresa un valor.
3. System.in: Clase para el ingreso de datos por teclado (en binario).
4. new InputStreamReader: Conversor de datos de binario (System.in) a caracter.
5. new BufferedReader: lee los datos de new InputStreamReader
6. BufferedReader dato: declarando dato como tipo BufferedReader
Estructuras condicionales.
Dos son las estructuras de control condicionales en Java: bifurcacin y seleccin mltiple.
Su sintaxis es:
if(condicion)
{
instruccion1();
instruccion2();.
}
else
{
instruccion1();
instruccion2(); ..
}
Es necesario que la condicin sea una variable o expresin booleana. Si slo existe una instruccin
en el bloque, las llaves no son necesarias. No es necesario que existe un bloque else.
Se pueden anidar como en el siguiente ejemplo:
if(condicion1)
{
bloqueDeInstrucciones();
}
else if(condicion2)
{
Lenguaje de programacin JAVA Pg. 9
bloqueDeInstrucciones();
}
else
{
bloqueDeInstrucciones();
}
switch(expresin)
{
case valor1: instrucciones(); break;
case valor2: instrucciones(); break;
default:
instrucciones();
}
La expresin ha de ser una variable de tipo entero o una expresin de tipo entero. Cuando se
encuentra coincidencia con un case se ejecutan las instrucciones a l asociadas hasta encontrar el
primer break. Si no se encuentra ninguna coincidencia se ejecutan las instrucciones en default. La
seccin defaultes prescindible.
Switch solo se puede utilizar para evaluar ordinales (por ordinal entenderemos en general
valores numricos enteros o datos que se puedan asimilar a valores numricos enteros). Por
tanto no podemos evaluar cadenas (String) usando switch porque el compilador nos devolver un
error de tipo found java.lang.String but expected int. S se permite evaluar caracteres y lo que
se denominan tipos enumerados, que veremos ms adelante. Switch solo permite evaluar valores
concretos de la expresin: no permite evaluar intervalos.
Estructuras de repeticin.
En Java las estructuras de repeticin son las mismas que en C/C++. A continuacin se detallan y se
indican las pequeas diferencias con respecto a C/C++.
while(condicin)
{
// Bloque de instrucciones
}
Lenguaje de programacin JAVA Pg. 10
do
{
// Bloque de instrucciones
}
while(condicin);
La condicin ha de ser una variable booleana o una expresin que se evalu a un valor booleano.
En la parte de iniciacin se puede declarar una variable de control del bucle cuyo mbito ser el
bucle. Tanto en la parte de iniciacin como de incremento se puede incluir varias expresiones
separadas por comas, pero nunca en la parte de condicin. La condicin ha de ser una variable
booleana o una expresin que se evalu a un valor booleano.
La palabra reservada break adems de para indicar el fin del bloque de instrucciones en una
instruccin de seleccin mltiple switch, sirve para forzar la salida del bloque de una estructura de
repeticin.. La palabra reservada continue, dentro del bloque de una estructura de repeticin
condicional, sirve para forzar la evaluacin de la condicin. Observa los dos ejemplos siguientes y
la salida que proporcionan por consola:
Recursividad.
Para que un problema pueda ser resuelto de modo recursivo ha de poseer las siguientes dos
caractersticas:
El problema original se ha de poder reducir al mismo problema y con una talla menor. Debe existir
un caso base o condicin de parada.
Por ejemplo, la funcin factorial se define en los siguientes trminos:
F(n) = n * F(n-1);
F(0) = 1;
La primera parte de la definicin de la funcin factorial nos dice que se puede calcular el factorial
de un nmero multiplicando ese nmero por el factorial del nmero menos uno, se ha reducido el
problema al mismo problema pero con una talla menor. La segunda parte de la definicin
corresponde al caso base, que fuerza la salida de la recursividad.
Java soporta la programacin recursiva. A continuacin se muestra una posible solucin recursiva
para el clculo de la funcin factorial:
La clase Math representa la librera matemtica de Java. Las funciones que contiene son las de
todos los lenguajes, parece que se han metido en una clase solamente a propsito de agrupacin,
por eso se encapsulan en Math, y lo mismo sucede con las dems clases que corresponden a
objetos que tienen un tipo equivalente (Character, Float, etc.). El constructor de la clase es
Lenguaje de programacin JAVA Pg. 12
privado, por los que no se pueden crear instancias de la clase. Sin embargo, Math es public para
que se pueda llamar desde cualquier sitio y static para que no haya que inicializarla.
Constantes definidas.
Constante Descripcin
PI Devuelve el valor de PI. Es un double.
E Devuelve el valor de E. Es un double
Java:String.format()
Mtodo que genera una cadena formateada antendiendo al formato indicado ms los argumentos
incluidos.
Ejemplo:
Conversor Valor
%b Booleano
%h Hashcode
%s Cadena
%c Caracter unicode
%d Entero decimal
%o Entero octal
%x Entero hexadecimal
%f Real decimal
%e Real notacin cientfica
%g Real notacin cientfica o decimal
%a Real hexadecimal con mantisa y exponente
%t Fecha u hora