Está en la página 1de 15

Separata de Java

SEPARATA DE JAVA
Algunos sabemos que la idea de ponerle Java a este lenguaje de
programacin vino de la gran aficin de sus programadores al Caf (Java
es el nombre de un tipo de caf, originario del este de Asia, de la isla del
mismo nombre).
De hecho como se sabe el logotipo de Java es una taza de caf humeante, y
es tambin muy frecuente ver granos de caf al lado del nombre Java en
un libro de programacin.

Java surgi en 1991 cuando un grupo de ingenieros de Sun


Microsystems trataron de disear un nuevo lenguaje de programacin destinado a electrodomsticos.
La reducida potencia de clculo y memoria de los electrodomsticos llev a desarrollar un lenguaje
sencillo capaz de generar cdigo de tamao muy reducido.
Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante conseguir
una herramienta independiente del tipo de CPU utilizada. Desarrollan un cdigo neutro que no
depende del tipo de electrodomstico, el cual se ejecuta sobre una mquina hipottica o virtual
denominada Java Virtual Machine (JVM). Es la JVM quien interpreta el cdigo neutro convirtindolo a
cdigo particular de la CPU utilizada. Esto permita lo que luego se ha convertido en el principal lema
del lenguaje: Write Once, Run Everywhere.
A pesar de los esfuerzos realizados por sus creadores, ninguna empresa de electrodomsticos se interes
por el nuevo lenguaje.

Java, como lenguaje de programacin para computadores, se introdujo a finales de 1995. La clave fue
la incorporacin de un intrprete Java en el programa Netscape Navigator, versin 2.0, produciendo
una verdadera revolucin en Internet. Java 1.1 apareci a principios de 1997, mejorando
sustancialmente la primera versin del lenguaje.
Al programar en Java no se parte de cero. Cualquier aplicacin que se desarrolle cuelga (o se apoya,
segn como se quiera ver) en un gran nmero de clases preexistentes. Algunas de ellas las ha podido
hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un nmero muy importante de
clases que forman parte del propio lenguaje (el API o Application Programming Interface de Java).
Java incorpora muchos aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas
de software o fabricantes de ordenadores (threads, ejecucin remota, componentes, seguridad, acceso a
bases de datos, etc.). Por eso es un lenguaje ideal para aprender la informtica moderna, porque
incorpora todos estos conceptos de un modo estndar, mucho ms sencillo y claro que con las citadas
extensiones de otros lenguajes. Esto es consecuencia de haber sido diseado ms recientemente y por
un nico equipo.
El principal objetivo del lenguaje Java es llegar a ser el nexo universal que conecte a los usuarios con
la informacin, est sta situada en el ordenador local, en un servidor de Web, en una base de datos o
en cualquier otro lugar.

Java es un lenguaje muy completo (se est convirtiendo en un macro-lenguaje: Java 1.0 tena 12
packages; Java 1.1 tena 23 y Java 1.2 tiene 59). En cierta forma casi todo depende de casi todo. Por
ello, hay que aprenderlo de modo iterativo: primero una visin muy general, que se va refinando en
sucesivas iteraciones. Una forma de hacerlo es empezar con un ejemplo completo en el que ya aparecen
algunas de las caractersticas ms importantes.
La compaa Sun describe el lenguaje Java como simple, orientado a objetos, distribuido, interpretado,
robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinmico.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
Adems de una serie de halagos por parte de Sun hacia su propia criatura, el hecho es que todo ello
describe bastante bien el lenguaje Java.
1.1. QU ES JAVA 2

Java 2 (antes llamado Java 1.2 o JDK 1.2 ) es la tercera versin importante del lenguaje de
programacin Java .
No hay cambios conceptuales importantes respecto a Java 1.1 (en Java 1.1 s los hubo respecto a
Java 1.0), sino extensiones y ampliaciones, lo cual hace que a muchos efectos sea casi lo
mismo trabajar con Java 1.1 o con Java 1.2 .
Los programas desarrollados en Java presentan diversas ventajas frente a los desarrollados en
otros lenguajes como C/C++. La ejecucin de programas en Java tiene muchas posibilidades:
Ejecucin como aplicacin independiente (Stand-alone Application), ejecucin como
applet , ejecucin como servlet, etc.. Un applet es una aplicacin especial que se ejecuta
dentro de un navegador o browser (por ejemplo Netscape Navigator o Internet
Explorer) al cargar una pgina HTML desde un servidor Web . El applet se descarga
desde el servidor y no requiere instalacin en el ordenador donde se encuentra el
browser. Un servlet es una aplicacin sin interfase grfica que se ejecuta en un
servidor de Internet. La ejecucin como aplicacin independiente es anloga a los
programas desarrollados con otros lenguajes.
Adems de incorporar la ejecucin como Applet , Java permite fcilmente el desarrollo
tanto de arquitecturas cliente-servidor como de aplicaciones distribuidas,
consistentes en crear aplicaciones capaces de conectarse a otros ordenadores y ejecutar
tareas en varios ordenadores simultneamente, repartiendo por lo tanto el trabajo.
Aunque tambin otros lenguajes de programacin permiten crear aplicaciones de este
tipo, Java incorpora en su propio API estas funcionalidades.

1.2. EL ENTORNO DE DESARROLLO DE JAVA


Existen distintos programas comerciales que permiten desarrollar cdigo Java. La compaa
Sun, creadora de Java, distribuye gratuitamente el Java(tm) Development Kit (JDK). Se trata
de un conjunto de programas y libreras que permiten desarrollar, compilar y ejecutar
programas en Java .
Incorpora adems la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecucin
en el punto deseado y estudiando en cada momento el valor de cada una de las variables (es el
denominado Debugger). Cualquier programador con un mnimo de experiencia sabe que una
parte muy importante (muchas veces la mayor parte) del tiempo destinado a la elaboracin de
un programa se destina a la deteccin y correccin de errores. Existe tambin una versin
reducida del JDK , denominada JRE (Java Runtime Environment) destinada nicamente a
ejecutar cdigo Java (no permite compilar).
Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos
de desarrollo integrados. En un mismo programa es posible escribir el cdigo Java, compilarlo
y ejecutarlo sin tener que cambiar de aplicacin. Algunos incluyen una herramienta para
realizar Debug grficamente, frente a la versin que incorpora el JDK basada en la utilizacin
de una consola (denominada habitualmente ventana de comandos de MS-DOS, en Windows
NT/95/98) bastante difcil y pesada de utilizar. Estos entornos integrados permiten
desarrollar las aplicaciones de forma mucho ms rpida, incorporando en muchos casos
libreras con componentes ya desarrollados, los cuales se incorporan al proyecto o programa.
Como inconvenientes se pueden sealar algunos fallos de compatibilidad entre plataformas y
ficheros resultantes de mayor tamao que los basados en clases estndar.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
1.2.1. El compilador de Java
Se trata de una de las herramientas de desarrollo incluidas en el JDK . Realiza un
anlisis de sintaxis del cdigo escrito en los ficheros fuente de Java (con extensin
*.java). Si no encuentra errores en el cdigo genera los ficheros compilados (con
extensin *.class). En otro caso muestra la lnea o lneas errneas. En el JDK de Sun
dicho compilador se llama javac.exe. Tiene numerosas opciones, algunas de las cuales
varan de una versin a otra. Se aconseja consultar la documentacin de la versin
del JDK utilizada para obtener una informacin detallada de las distintas
posibilidades.

1.2.2. La Java Virtual Machine


La existencia de distintos tipos de procesadores y ordenadores llev a los ingenieros de
Sun a la conclusin de que era muy importante conseguir un software que no
dependiera del tipo de procesador utilizado. Se plantea la necesidad de conseguir un
cdigo capaz de ejecutarse en cualquier tipo de mquina. Una vez compilado no
debera ser necesaria ninguna modificacin por el hecho de cambiar de procesador o de
ejecutarlo en otra mquina. La clave consisti en desarrollar un cdigo neutro el
cual estuviera preparado para ser ejecutado sobre una mquina hipottica o virtual,
denominada Java Virtual Machina (JVM). Es esta JVM quien interpreta este cdigo
neutro convirtindolo a cdigo particular de la CPU o chip utilizada. Se evita tener
que realizar un programa diferente para cada CPU o plataforma.
La JVM es el intrprete de Java. Ejecuta los bytecodes (ficheros compilados con
extensin *.class) creados por el compilador de Java (javac.exe). Tiene numerosas
opciones entre las que destaca la posibilidad de utilizar el denominado JIT (Just-InTime Compiler), que puede mejorar entre 10 y 20 veces la velocidad de ejecucin de un
programa.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
TIPOS DE DATOS
La siguiente tabla muestra los 8 tipos primitivos en Java. Al igual que sus lenguajes
antecesores C y C++, Java requiere que todas las variables tengan un tipo. Es por esta
razn que Java se conoce como un lenguaje fuertemente tipificado.
Cuando se declaran variables de alguno de los tipos primitivos fuera de un mtodo,
se les asignan automticamente valores predeterminados, a menos que se inicialicen en
forma explcita. Las variables de los tipos char, byte, short, int, long, float y double
reciben el valor de 0 de manera predeterminada. Las variables de tipo bolean reciben el
valor de false de manera predeterminada.
Tipo
boolean
Char
Byte
Short
Int
long
Float

Tamao en bits
true o false
16
8
16
32
64
32

Double

64

Valores
0 hasta 65535
-128 a +127
-32768 a 32767
-2147483648 hasta +2147483647
-9223372036854775808 hasta +9223372036854775807
Rango negativo:
-3.4028234663852886E+38 hasta -1.40129846432481707E-45
Rango positivo:
1.40129846432481707E-45 hasta
3.4028234663852886E+38
Rango negativo:
-1.7976931348623157E+308 hasta -4.94065645841246544E-324
Rango positivo:
4.94065645841246544E-324 hasta 1.7976931348623157E+308

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
ESTRUCTURAS SECUENCIALES
Programa1.java
class Programa1
{
public static void main(String args[])
{
System.out.println("Esta es una prueba");
}
}
Salida:

Comentarios:

Todo programa en Java consiste de, cuando menos, una declaracin de clase que el
programador debe de definir. Estas clases se conocen como clases definidas por el
programador o clases definidas por el usuario. La palabra clave class introduce una
declaracin de clase en Java, la cual debe ir seguida inmediatamente por el nombre de
la clase.

La lnea.
public static void main(String args[])

Es el punto de inicio de toda aplicacin en Java. Los parntesis despus de main


indican que ste es un bloque de construccin del programa, al cual se le llama mtodo. Las
declaraciones de clases en Java generalmente contienen uno o ms mtodos. En una
aplicacin en Java, slo uno de esos mtodos debe llamarse main y debe definirse como lo
muestra el primer programa, de no ser as, el intrprete java no ejecutar la aplicacin. La
palabra clave void indica que este mtodo realizar una tarea pero no devolver ningn tipo
de informacin cuando complete su tarea.

System.out se conoce como el objeto de salida estndar, permite a las aplicaciones en


Java mostrar conjuntos de caracteres en la ventana de comandos, desde la cual se
ejecuta la aplicacin en Java.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
Programa2.java
class Programa2
{
public static void main(String args[])
{
int a=10;
int b=30;
int c=a+b;
System.out.println("c="+c);
//una alternativa a este cdigo es

/*

int a,b,c;
a=10;
b=30;
c=a+b;
System.out.println("c="+c);

*/
}
}
Programa3.java
class Programa3
{
public static void main(String args[])
{
int a=7;
int b=3;
int s,r,m,d,modulo;
s=a+b;
r=a-b;
m=a*b;
d=a/b;
modulo=a%b;
System.out.println("La suma es="+s);
System.out.println("La resta es="+r);
System.out.println("La multiplicacion es="+m);
System.out.println("La division es="+d);
System.out.println("El residuo es="+modulo);
}
}
Salida:

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
Programa4.java
class Programa4
{
public static void main(String args[])
{
double a=7.453;
double b=3.567;
double s,r,m,d;
s=a+b;
r=a-b;
m=a*b;
d=a/b;
System.out.println("La suma es="+s);
System.out.println("La resta es="+r);
System.out.println("La multiplicacion es="+m);
System.out.println("La division es="+d);
}
}
Salida:

Programa5.java
class Programa5
{
public static void main(String args[])
{
String a="Java";
int b=10;
double c=3.1416;
float d1=5.6F;
float d2=(float)4.2;
byte e=35;
boolean f=true;
char g='a';
short h=100;
System.out.println("a="+a+" b="+b+" c="+c);
System.out.println("d1="+d1+" d2="+d2);
System.out.println("e="+e+" f="+f+" g="+g+" h="+h);
}
}
Salida:

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
ENTRADA DE DATOS
import java.util.Scanner;
public class suma2n {
public static void main(String args[])
{
int a,b,c;
/*
a=10;
b=30;*/
Scanner teclado=new Scanner(System.in);
System.out.print("N1=");
a=teclado.nextInt();
System.out.print("N2=");
b=teclado.nextInt();
c=a+b;
System.out.println("c="+c);
}

}
sexo=teclado.next().charAt(0); //Ingreso de letras

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
ESTRUCTURAS SELECTIVAS, DE DECISIN O CONDICIONALES
Para decidir el Tipo de Estructura Selectiva a usar debemos analizar la
variable y su cantidad de alternativas.
ESTRUCTURA SELECTIVA SIMPLE
Dividen el rumbo de ejecucin de los programas en 2 opciones.

Ejemplo: M/F, S/N, APROBADO/DESAPROBADO, etc.

Programa en Java
import java.util.Scanner;
public class aprobado {
public static void main(String args[])
{
float promfinal;
Scanner teclado=new Scanner(System.in);
System.out.print("Ingresa el Promedio Final:");
promfinal=teclado.nextFloat();
if (promfinal>=10.5) {
System.out.println("Aprobado");}
else {
System.out.println("Desaprobado ");}
}
}

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
ESTRUCTURA SELECTIVA MULTIPLE
Dividen el rumbo de ejecucin de los programas en ms de 2 alternativas.

Condicin

Ej.:

Accin S1

Accin S2

Accin S3

.....

Accin Sn

CARRERAS PROFESIONALES, CIUDADES, ESTADO CIVIL, etc.

Programa en Java
import java.util.Scanner;
public class estadocivil {
public static void main(String args[])
{char estadocivil;
Scanner teclado=new Scanner(System.in);
System.out.print("Ingresa el Estado Civil:");
estadocivil=teclado.next().charAt(0);
switch (estadocivil) {
case S: System.out.print("Soltero");
break;
case C: System.out.print("Casado");
break;
case V: System.out.print("Viudo");
break;
case D: System.out.print("Divorciado");
break;
case N: System.out.print("Conviviente");
break;
default: System.out.print("Error de Ingreso");
}

Las acciones que van dentro de cada alternativa


deben ser diferentes.
Si existe algo en comn debe ser colocado fuera
de la Estructura Selectiva.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
ESTRUCTURAS REPETITIVAS
1. Definicin: Es una estructura de mayor nivel que permite
crear lazos de repeticin de lneas de sentencias.
Las estructuras repetitivas o bucles permiten repetir una o
varias acciones un nmero determinado de veces. Cada una de
las repeticiones se conoce como iteracin.

2. Usos

Se debe utilizar cuando se repiten varias lneas de sentencias.

Ingresar Apellido1
Ingresar Apellido2
Ingresar Apellido3

Ingresar Apellido30

Se reduce

Ingresar Apellido

Se repite 30
veces

3. Importancia

Reduce el tamao de la aplicacin es decir la cantidad de lneas.


Reduce la complejidad.
Eficiencia: Espacio, Tiempo y Procesador.

4. Tipos: El tipo de estructura se elige de acuerdo a la naturaleza del problema, NO se


decide arbitrariamente ni porque se desea, del mismo problema se deducir si se
conoce o no el nmero de repeticiones.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
4.1. Estructura Repetitiva Finita:
o
o
o

Aquellas donde se conoce el nmero o cantidad de elementos, repeticiones o


iteraciones.
Se utiliza la estructura PARA (for).
Ejemplo: El nmero de alumnos de una asignatura, Notas de Alumnos de
Mtodos Algortmicos 2, Pago de Horas de docentes, Libros de biblioteca, etc.

public class CEjemplo24 {


public static void main(String[] args)
{
for (int i = 1; i <= 10; i++)
System.out.println("\t" + i);
}
}
4.2. Estructura Repetitiva Infinita:
o
o
o

Aquellas donde no se conoce el nmero o cantidad de elementos, repeticiones o


iteraciones.
Se utiliza las estructuras: MIENTRAS (while) y
HACER/MIENTRAS (do/while).
Ejemplo: El nmero de postulantes a un examen de
admisin, Pacientes de un mdico, Clientes de una
tienda, usuarios de biblioteca, etc.

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
public class CEjemplo21 {
public static void main(String[] args)
{
int numero = 0;
do

{
numero = numero + 1;
System.out.println("\t" + numero);

}
while (numero < 10);
System.out.println("\tFin del programa");
}
}

public class CEjemplo20 {


public static void main(String[] args)
// (utilizando for) suma de pares e impares
// de los numeros comprendidos entre 1 --- 200
{
int numero = 0, resultado = 0;
int cuentaN= 0;
numero = Integer.parseInt(args[0]);
System.out.println("Visualizar la tabla del nmero: " + numero);
while (cuentaN <= 12)
{
resultado = cuentaN * numero;
System.out.println(cuentaN + " * " + numero + " = " +
resultado);
cuentaN++;
}
}
}

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
5. Herramientas: Se deben utilizar dentro del lazo de repeticin.
5.1. Contador: Permite contabilizar o enumerar la cantidad de elementos o de
repeticiones.

N=0

(Se inicializa)

N=N+1 (Dentro de la repeticin)


5.2. Acumulador: Permite determinar la suma o total de un grupo de elementos o
datos.

SUMA=0

(Se inicializa)

SUMA=SUMA+valor (Dentro de la repeticin)

5.3. Mximo: Permite determinar el mayor valor de un grupo de elementos o datos.


MAYOR=0

(Se inicializa)

Si valor>MAYOR
Entonces MAYOR = valor (Dentro de la repeticin)

5.4. Mnimo: Permite determinar el menor valor de un grupo de elementos o datos.


MENOR=9999

(Se inicializa)

Si valor<MENOR
Entonces MENOR = valor

(Dentro de la repeticin)

Ing. Fernando Infante Saavedra


Docente del Curso

Separata de Java
6. Diferencias entre los tipos de Estructuras Repetitivas Infinitas:
1. Uno es Mientras y el otro Hacer/Mientras
2. El Mientras lleva la Condicin de Repeticin antes de empezar el lazo de repeticin,
el Hacer/Mientras tiene la Condicin de Repeticin al final del lazo de repeticin.
3. El Mientras ejecuta Ninguna o varias veces el lazo de repeticin, el Hacer/Mientras
ejecuta por lo menos Una o varias veces el lazo de repeticin.
4. El Mientras tiene un Diagrama de Flujo diferente al del Hacer/Mientras.

Ing. Fernando Infante Saavedra


Docente del Curso