Vous êtes sur la page 1sur 13

Lenguaje de programacin JAVA Pg.

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.

El tpico primer programa

En el listado del Ejemplo 1-1 se muestra el tpico primer programa. Cpialo a un fichero que lleve
por nombre HolaJava.java.

Ejemplo 1-1. Primer programa en Java

public class HolaJava


{
public static void main(String args[])
{
System.out.println("Hola Java");
}
}
El resultado que se mostrar en la consola es:
Hola 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.

Los nombres de las clases deben empezar por mayscula.


Los atributos y mtodos de las clases deben empezar por minsculas y si estn formadas
por varias palabras, se escriben sin espacios y la primera letra de cada palabra en
mayscula.
Las instancias de las clases siguen la misma recomendacin que los mtodos y atributos.
Las constantes se escriben en maysculas.

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

En Java existen tres tipos de comentarios:

Comentarios de una solo lnea como en C++


// Esta es una lnea comentada.

Comentarios de bloques como en C.


/* Aqu empieza el bloque comentado y aqu acaba */

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.

Tipos de datos primitivos.

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.

Los operadores de Java

Operador Operando Descripcin


++, -- Aritmtico Incremento y decremento
+, - Aritmtico Ms y menos unarios
*, /, % Aritmtico Multiplicacin, divisin y resto
+, - Aritmtico Suma y resta
+ String Concatenacin

Operador Operando Descripcin


<, <=, > >= Primitivo Comparacin
==, != Primitivo Igualdad y desigualdad
&& Booleano AND condicional
|| Booleano OR condicional
= Cualquiera Asignacin

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

raizcuadrada =Math.pow(n1,0.5); //Raz cuadrada de n1

System.out.println("Los valores de n1 y n2 es : "+n1+" y "+n2);

System.out.println("La suma de los nmeros es : "+s);

System.out.println("La resta de los nmeros es : "+r);

System.out.println("La multiplicacin de los nmeros es : "+m);

System.out.println("La divisin de los nmeros es : "+d);

System.out.println("La potencia de n1 elevado a n2 es : "+p);

System.out.println("La raz cuadrada de n1 : "+raizcuadrada);

}
Lenguaje de programacin JAVA Pg. 6

Ingreso de datos por consola


Clase Scanner

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.

2. En Scanner in = new Scanner ( System.in ); creamos un objeto de tipo Scanner al que le


llamamos in. Mediante este objeto podemos acceder a los diferentes mtodos y propiedades
que nos proporciona la clase Scanner. El argumento ( System.in ) permite al programa leer las
respuestas del usuario que escribe desde el teclado.

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.

4. Desde la lnea 20 hasta la 25 utilizamos el cdigo System.out.println (.) para imprimir


texto en pantalla, las preguntas se ubican entre comillas dobles. Cuando el usuario responde
a una pregunta, el objeto in de la clase Scanner llama al mtodo next () y nextInt(), para leer
la respuesta y almacenar su valor en la variable correspondiente.
Lenguaje de programacin JAVA Pg. 7

5. Finalmente utilizamos la instruccin System.out.printf () para mostrar un texto al usuario con


su nombre, edad y lugar de residencia.

6. Argumentos utilizados

%s : para cadenas

%d : para nmeros enteros

%f :Para valores float o doubl

%x.yf :Para float o double con formato x dgitos y decimales:

%x.ye %n:Para Notacin cientfica: x dgitos (incluyendo e+ o e-) y decimales

%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.

La metodologa de uso es sencilla y la que sigue:

BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));

A continuacin vamos a ver un ejemplo de lo ms simple:


Lenguaje de programacin JAVA Pg. 8

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 de control en Java.


Las estructuras de control en Java presentan escasas diferencias con respecto a C/C++, no
obstante existen diferencias.

Estructuras condicionales.
Dos son las estructuras de control condicionales en Java: bifurcacin y seleccin mltiple.

Bifurcacin: if-else, if-else-if

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();
}

Seleccin mltiple: switch.


Su sintaxis es la siguiente:

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++.

Repeticiones condicionales: while, do while.


Su sintaxis y funcionamiento son iguales que en C/C++, en la estructura de control while evala la
condicin antes de ejecutar el bloque de la estructura; en la do...while se evala la condicin
despus de la ejecucin del bloque.

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.

Repeticin sobre un rango determinado. for


Bucles for, su sintaxis es la siguiente:

for (iniciacin; condicin; incremento)


{
// Bloque de instrucciones
}
No es necesario que la condicin se base exclusivamente en la variable de control del bucle.

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.

Uso de breaky continue.

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:

public class Break


{
public static void main(String [] args)
{
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
if(j > i) break; System.out.print(j+",");
}
System.out.println("");
}
}
}
Lenguaje de programacin JAVA Pg. 11

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:

public class Factorial


{
public static void main(String args[])
{
long n = Long.parseLong(args[0]);
System.out.println("El factorial de " + n + " es: " + Factorial(n));
}

private static long Factorial(long n)


{
long resultado;
if(n > 0)
resultado = n * Factorial(n-1);
else
resultado = 1;
return resultado;
}
}

Metodos de la clase Math

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.

Mtodo Descripcin Parmetros Tipo de dato devuelto


abs Devuelve el valor absoluto de un Un parametro que El mismo que introduces.
numero. puede ser un int,
double, float o long
arcos Devuelve el arco coseno de un angulo Double Double
en radianes.
asin Devuelve el arco seno de un ngulo en Double Double
radianes.
atan Devuelve el arco tangente entre -PI/2 Double Double
y PI/2.
atan2 Devuelve el arco tangente entre -PI y Double Double
PI.
ceil Devuelve el entero ms cercano por Double Double
arriba.
floor Devuelve el entero ms cercano por Double Double
debajo.
round Devuelve el entero ms cercano. Double o float long (si introduces un double)
o int (si introduces un float)
cos Devuelve el coseno de un ngulo. Double Double
sin Devuelve el seno de un ngulo. Double Double
tan Devuelve la tangente de un ngulo. Double Double
exp Devuelve el exponencial de un Double Double
nmero.
Log Devuelve el logaritmo natural en base Double Double
e de un nmero.
max Devuelve el mayor de dos entre dos Dos parametros que El mismo tipo que introduces.
valores. pueden ser dos int,
double, float o long
min Devuelve el menor de dos entre dos Dos parametros que El mismo tipo que introduces.
valores. pueden ser dos int,
double, float o long
random Devuelve un nmero aleatorio entre 0 Ninguno Double
y 1. Se pueden cambiar el rango de
generacin.
sqlrt Devuelve la raz cuadrada de un Double Double
nmero.
pow Devuelve un nmero elevado a un Dos parmetros Double
exponente. double (base y
exponente)
Lenguaje de programacin JAVA Pg. 13

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:

double numero = 425.45678798;


String formateado = String.format("Contenido %.2f unidades", numero);
System.out.println(formateado);

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

Vous aimerez peut-être aussi