Separata de Java

15
Separata de Java Ing. Fernando Infante Saavedra Docente del Curso SEPARATA DE JAVA Algunos sabemos que la idea de ponerle Java a este lenguaje de programación vino de la gran afición 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 también muy frecuente ver granos de café al lado del nombre Java en un libro de programación. Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. La reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar un lenguaje sencillo capaz de generar código de tamaño 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 código “neutro” que no depende del tipo de electrodoméstico, el cual se ejecuta sobre una “ máquina hipotética o virtualdenominada Java Virtual Machine (JVM). Es la JVM quien interpreta el código neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía 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 electrodomésticos se interesó por el nuevo lenguaje. Java, como lenguaje de programación para computadores, se introdujo a finales de 1995. La clave fue la incorporación de un intérprete Java en el programa Netscape Navigator, versión 2.0, produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando sustancialmente la primera versión del lenguaje. Al programar en Java no se parte de cero. Cualquier aplicación que se desarrolle “cuelga” (o se apoya, según como se quiera ver) en un gran número de clases preexistentes. Algunas de ellas las ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número 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, ejecución remota, componentes, seguridad, acceso a bases de datos, etc.). Por eso es un lenguaje ideal para aprender la informática moderna, porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas extensiones de otros lenguajes. Esto es consecuencia de haber sido diseñado más 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 información, 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 tenía 12 packages; Java 1.1 tenía 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 visión 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 características más importantes. La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico”.

description

Guía de java en consola

Transcript of Separata de Java

Page 1: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

SEPARATA DE JAVA

Algunos sabemos que la idea de ponerle Java a este lenguaje de

programación vino de la gran afición 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 también muy frecuente ver granos de café al lado del nombre Java en

un libro de programación.

Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos.

La reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar un lenguaje

sencillo capaz de generar código de tamaño 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 código “neutro” que no

depende del tipo de electrodoméstico, el cual se ejecuta sobre una “máquina hipotética o virtual” denominada Java Virtual Machine (JVM). Es la JVM quien interpreta el código neutro convirtiéndolo a

código particular de la CPU utilizada. Esto permitía 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 electrodomésticos se interesó

por el nuevo lenguaje.

Java, como lenguaje de programación para computadores, se introdujo a finales de 1995. La clave fue

la incorporación de un intérprete Java en el programa Netscape Navigator, versión 2.0, produciendo

una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando

sustancialmente la primera versión del lenguaje.

Al programar en Java no se parte de cero. Cualquier aplicación que se desarrolle “cuelga” (o se apoya,

según como se quiera ver) en un gran número de clases preexistentes. Algunas de ellas las ha podido

hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número 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, ejecución remota, componentes, seguridad, acceso a

bases de datos, etc.). Por eso es un lenguaje ideal para aprender la informática moderna, porque

incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas

extensiones de otros lenguajes. Esto es consecuencia de haber sido diseñado más 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 información, 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 tenía 12

packages; Java 1.1 tenía 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 visión 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 características más importantes.

La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico”.

Page 2: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

Además 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 versión importante del lenguaje de

programación 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 ejecución de programas en Java tiene muchas posibilidades:

Ejecución como aplicación independiente (Stand-alone Application), ejecución como

applet, ejecución como servlet, etc.. Un applet es una aplicación especial que se ejecuta

dentro de un navegador o browser (por ejemplo Netscape Navigator o Internet Explorer) al cargar una página HTML desde un servidor Web. El applet se descarga

desde el servidor y no requiere instalación en el ordenador donde se encuentra el

browser. Un servlet es una aplicación sin interfase gráfica que se ejecuta en un

servidor de Internet. La ejecución como aplicación independiente es análoga a los

programas desarrollados con otros lenguajes.

Además de incorporar la ejecución como Applet, Java permite fácilmente 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 simultáneamente, repartiendo por lo tanto el trabajo.

Aunque también otros lenguajes de programación 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 código Java. La compañía

Sun, creadora de Java, distribuye gratuitamente el Java(tm) Development Kit (JDK). Se trata

de un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar

programas en Java.

Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecución

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 mínimo de experiencia sabe que una

parte muy importante (muchas veces la mayor parte) del tiempo destinado a la elaboración de

un programa se destina a la detección y corrección de errores. Existe también una versión

reducida del JDK, denominada JRE (Java Runtime Environment) destinada únicamente a

ejecutar código 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 código Java, compilarlo

y ejecutarlo sin tener que cambiar de aplicación. Algunos incluyen una herramienta para

realizar Debug gráficamente, frente a la versión que incorpora el JDK basada en la utilización

de una consola (denominada habitualmente ventana de comandos de MS-DOS, en Windows NT/95/98) bastante difícil y pesada de utilizar. Estos entornos integrados permiten

desarrollar las aplicaciones de forma mucho más rápida, incorporando en muchos casos

librerías con componentes ya desarrollados, los cuales se incorporan al proyecto o programa.

Como inconvenientes se pueden señalar algunos fallos de compatibilidad entre plataformas y

ficheros resultantes de mayor tamaño que los basados en clases estándar.

Page 3: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

1.2.1. El compilador de Java

Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un

análisis de sintaxis del código escrito en los ficheros fuente de Java (con extensión

*.java). Si no encuentra errores en el código genera los ficheros compilados (con

extensión *.class). En otro caso muestra la línea o líneas erróneas. En el JDK de Sun dicho compilador se llama javac.exe. Tiene numerosas opciones, algunas de las cuales

varían de una versión a otra. Se aconseja consultar la documentación de la versión

del JDK utilizada para obtener una información 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 conclusión de que era muy importante conseguir un software que no

dependiera del tipo de procesador utilizado. Se plantea la necesidad de conseguir un

código capaz de ejecutarse en cualquier tipo de máquina. Una vez compilado no

debería ser necesaria ninguna modificación por el hecho de cambiar de procesador o de

ejecutarlo en otra máquina. La clave consistió en desarrollar un código “neutro” el

cual estuviera preparado para ser ejecutado sobre una “máquina hipotética o virtual”, denominada Java Virtual Machina (JVM). Es esta JVM quien interpreta este código

neutro convirtiéndolo a código particular de la CPU o chip utilizada. Se evita tener

que realizar un programa diferente para cada CPU o plataforma.

La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros compilados con

extensión *.class) creados por el compilador de Java (javac.exe). Tiene numerosas

opciones entre las que destaca la posibilidad de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar entre 10 y 20 veces la velocidad de ejecución de un

programa.

Page 4: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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

razón que Java se conoce como un lenguaje fuertemente tipificado.

Cuando se declaran variables de alguno de los tipos primitivos fuera de un método,

se les asignan automáticamente valores predeterminados, a menos que se inicialicen en

forma explícita. 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 Tamaño en bits Valores

boolean true o false

Char 16 0 hasta 65535

Byte 8 -128 a +127

Short 16 -32768 a 32767

Int 32 -2147483648 hasta +2147483647

long 64 -9223372036854775808 hasta +9223372036854775807

Float 32 Rango negativo:

-3.4028234663852886E+38 hasta -1.40129846432481707E-45

Rango positivo:

1.40129846432481707E-45 hasta 3.4028234663852886E+38

Double 64 Rango negativo:

-1.7976931348623157E+308 hasta -4.94065645841246544E-324

Rango positivo:

4.94065645841246544E-324 hasta 1.7976931348623157E+308

Page 5: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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 declaración 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

declaración de clase en Java, la cual debe ir seguida inmediatamente por el nombre de

la clase.

La línea.

public static void main(String args[])

Es el punto de inicio de toda aplicación en Java. Los paréntesis después de main

indican que éste es un bloque de construcción del programa, al cual se le llama método. Las

declaraciones de clases en Java generalmente contienen uno o más métodos. En una

aplicación en Java, sólo uno de esos métodos debe llamarse main y debe definirse como lo

muestra el primer programa, de no ser así, el intérprete java no ejecutará la aplicación. La

palabra clave void indica que este método realizará una tarea pero no devolverá ningún tipo

de información cuando complete su tarea.

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

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

ejecuta la aplicación en Java.

Page 6: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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 código 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:

Page 7: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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:

Page 8: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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

Page 9: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

ESTRUCTURAS SELECTIVAS, DE DECISIÓN 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 ejecución 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 ");}

}

}

Page 10: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

Condición

Acción S1 Acción S2 Acción S3 Acción Sn .....

ESTRUCTURA SELECTIVA MULTIPLE

Dividen el rumbo de ejecución de los programas en más de 2 alternativas.

Ej.:

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 común debe ser colocado fuera

de la Estructura Selectiva.

Page 11: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

ESTRUCTURAS REPETITIVAS

1. Definición: Es una estructura de mayor nivel que permite

crear lazos de repetición de líneas de sentencias.

Las estructuras repetitivas o bucles permiten repetir una o

varias acciones un número determinado de veces. Cada una de

las repeticiones se conoce como iteración.

2. Usos Se debe utilizar cuando se repiten varias líneas de sentencias.

Ingresar Apellido1

Ingresar Apellido2

Ingresar Apellido3

º

º

º

Ingresar Apellido30

Ingresar Apellido

3. Importancia Reduce el tamaño de la aplicación es decir la cantidad de líneas.

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 número de repeticiones.

Se repite 30

veces

Se reduce

Page 12: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

4.1. Estructura Repetitiva Finita: o Aquellas donde se conoce el número o cantidad de elementos, repeticiones o

iteraciones.

o Se utiliza la estructura PARA (for).

o Ejemplo: El número de alumnos de una asignatura, Notas de Alumnos de

Métodos Algorítmicos 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 Aquellas donde no se conoce el número o cantidad de elementos, repeticiones o

iteraciones.

o Se utiliza las estructuras: MIENTRAS (while) y

HACER/MIENTRAS (do/while).

o Ejemplo: El número de postulantes a un examen de

admisión, Pacientes de un médico, Clientes de una

tienda, usuarios de biblioteca, etc.

Page 13: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

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 número: " + numero);

while (cuentaN <= 12) {

resultado = cuentaN * numero;

System.out.println(cuentaN + " * " + numero + " = " +

resultado);

cuentaN++;

}

}

}

Page 14: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

5. Herramientas: Se deben utilizar dentro del lazo de repetición.

5.1. Contador: Permite contabilizar o enumerar la cantidad de elementos o de

repeticiones.

N=0 (Se inicializa)

º

º

º

N=N+1 (Dentro de la repetición)

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 repetición)

5.3. Máximo: 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 repetición)

5.4. Mínimo: 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 repetición)

Page 15: Separata de Java

Separata de Java

Ing. Fernando Infante Saavedra

Docente del Curso

6. Diferencias entre los tipos de Estructuras Repetitivas Infinitas:

1. Uno es Mientras y el otro Hacer/Mientras

2. El Mientras lleva la Condición de Repetición antes de empezar el lazo de repetición,

el Hacer/Mientras tiene la Condición de Repetición al final del lazo de repetición.

3. El Mientras ejecuta Ninguna o varias veces el lazo de repetición, el Hacer/Mientras

ejecuta por lo menos Una o varias veces el lazo de repetición.

4. El Mientras tiene un Diagrama de Flujo diferente al del Hacer/Mientras.