You are on page 1of 35

Introduccin a Java

INFO 023 SEM. II - 2011

Para comenzar

Lenguaje Interpretado

Lenguaje Compilado

Java: Compilado o Interpretado?


Una vez Prog.java FUENTE Compilador Prog.class INTERMEDIO

Byte Code (Cd. de la Plataforma)

Por cada ejecucin

Prog.class INTERMEDIO

Interpretador

Prog.exe lnea-a-lnea

Java: Compilador o Interpretador?

Ambos!!!... Compila y genera un cdigo intermedio ("bytecode"), o .class. Interpreta el .class en una maquina virtual (JVM) y genera cdigo de mquina

JDK, JRE, JVM


JVM: Conjunto de software que opera bajo el modelo de mquina virtual para leer y ejecutar cdigo binario Java

JDK, JRE, JVM


JRE: JVM + todo lo necesario (biblioteca de clases) para ejecutar un programa Java.

JDK, JRE, JVM


JDK: JRE + Herramientas extras necesarias para hacer programas Java

Cmo era en Python?

Si

queramos escribir "Hola amigos"... print ("Hola Amigos")

Y en Java?

Primera forma: Modo texto

public class saludo{ public static void main(String args[]) { System.out.println("Hola Amigos"); } }

Y en Java?
Dnde escribir el cdigo?

Y en Java?
Dnde escribir el cdigo?

Algunas precisiones..
El nombre del archivo .java debe coincidir con el de la clase definida.

Java distingue entre maysculas y minsculas.

Algunas precisiones..
Java no distingue los comandos por un fin de lnea (como Python).

Note que escribir el cdigo de la forma anterior es completamente VLIDO.

Algunas precisiones..
Tenemos que definir una clase y definir mtodos (funciones), de los cuales main es el principal, el que se invoca al ejecutar un programa desde la consola.

public indica que ser accesible desde distintos puntos de su sistema. void indica que nada retorna al mtodo que la llam. static indica que la clase o variable puede compartir su informacin.

Y en Java Grfico?

Segunda forma: Modo grfico (usando "Swing")

import javax.swing.JOptionPane; public class saludo02{ /* Saludo version swing */ public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Hola Amigos", "SALUDO",JOptionPane.INFORMATION_MESSAGE); } }

Tipos de Datos Primitivos


Tipos de datos numricos enteros:
byte, short, int, long, char byte (8 bits): -128 a +127 short (16 bits): -32768 a +32767 int para enteros (32 bits), negativos o positivos: 2147483648 a + 2147483647 long (64 bits): 9223372036854775808 a +9223372036854775807 char (16 bits): \u0000 a \uFFFF (u = Unicode)

Tipos de Datos Primitivos


Tipos de datos numricos reales:
float, double float (32 bits): notacin punto flotante (IEEE 754);1 bit para signo, 8 bits para exponente y 24 bits para mantisa double (64 bits): notacin punto flotante (IEEE 754);1 bit para signo, 11 bits para exponente y 52 bits para mantisa

Tipo de datos booleano:


boolean : true y false

Declaracin de Variables
Cuando una expresin se repite una y otra vez, su valor se puede almacenar en una variable. Entonces, se necesita reservar espacio en memoria para cada una:
int f; int a = 2000; La primera instruccin es una declaracin de la variable f La siguiente, es una declaracin que asigna la constante 2000 a la variable a.

Ejercicio
Desarrollar en java el Jalisco Solucin:
Se requiere un mecanismo interactivo. La entrada es desde teclado. Se puede usar:
Paquete tradicional io Paquete Scanner (versiones ms recientes de Java)

Interaccin usando IO
Debe importarse el paquete IO:
import java.io.*;

Debe modelarse la entrada como un flujo de datos


????

Complicado!!! Hay mejores formas!!

Interaccin usando Scanner


Scanner es una clase derivada del paquete util. Apareci con la JDK 1.5 (5.0) Divide la entrada desde System.in en tokens. Intenta interpretar la entrada como algn tipo primitivo de datos, mediante los siguientes mtodos:

Interaccin usando Scanner


int nextInt() double nextDouble() boolean nextBoolean() byte nextByte() float nextFloat() short nextShort() long nextLong() String next()

Para el caso del Jalisco:

Interaccin usando Scanner


import java.util.Scanner; public class Jalisco03{ public static void main(String args[]) { Scanner entrada = new Scanner(System.in); System.out.print("Escribe tu nombre: "); String nombre = entrada.next(); System.out.print("Ingrese un entero: "); int N = entrada.nextInt(); System.out.println("Hola, "+nombre+" Te gano... tengo el "+(N+1)); } }

Ejercicio
Escriba un programa que lea 3 nmeros enteros, los almacene en 3 variables distintas e imprima una lista con cada uno de los nmeros ingresados, seguido del nmero 0 si es par, o 1 si es impar, segn corresponda (un nmero por fila). No debe usar sentencias condicionales (No conocemos su sintaxis en Java an!!) El dilogo entre el programa y el usuario debe ser el siguiente:
Ingrese primer numero: 10 Ingrese segundo numero : 20

Ingrese tercer numero: 15


10 0 20 0 15 1 Valores ingresados por el usuario en negritas. Todo el resto ha sido desplegado por el programa.

Solucin
import java.util.*; class Decision { static public void main(String[]args) { Scanner C= new Scanner(System.in); System.out.print("Ingrese primer numero: "); int N1 = C.nextInt(); System.out.print("Ingrese segundo numero: "); int N2 = C.nextInt(); System.out.print("Ingrese tercer numero: "); int N3 = C.nextInt(); System.out.println(N1 + +N1%2); System.out.println(N2 + +N2%2); System.out.println(N3 + +N3%2);

Operadores Aritmticos
Operador Operacin
Suma Operandos enteros o reales Resta Operandos enteros o reales Multiplicacin - Operandos enteros o reales Divisin - Operandos enteros o reales. Si ambos son enteros, el resultado es entero. En otro caso, el resultado es real Mdulo o resto de una divisin entera. Ambos operandos deben ser enteros

+ * / %

Operadores Relacionales
Operador Operacin
Op A menor que Op B? Op A mayor que Op B? Op A menor o igual que Op B?

< > <=

>=
!= ==

Op A mayor o igual que Op B?


Op A distinto a Op B? Op A igual que Op B?

Operadores Lgicos
Operador Operacin
AND OR NOT XOR

Operandos
2 2 1 2

&&
|| ! ^

EJEMPLO
Escriba un programa que calcule el producto de 5 enteros consecutivos. El programa solicitar al usuario el primer entero de la secuencia y generar en forma algortmica los restantes para resolver el problema. Un ejemplo de entrada y salida ser:
Ingrese un entero: 20

La salida: 5100480

Solucin
import java.util.Scanner; public class Prod01{ public static void main(String args[]) { Scanner entrada = new Scanner(System.in); System.out.print("Ingrese un entero: "); int N = entrada.nextInt(); int M = N * (N+1)* (N+2) * (N+3) * (N+4); System.out.println("La salida: "+M);

You might also like