La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Java Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Soporta clases, encapsulación,

Presentaciones similares


Presentación del tema: "Java Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Soporta clases, encapsulación,"— Transcripción de la presentación:

1 Java Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Soporta clases, encapsulación, herencia simple, polimorfismo, interfaces, garbage collection 1

2 Java Objetivo inicial: un lenguaje de programación para dispositivos de consumo Requerimientos: pequeño, rápido, confiable y portable En 1994 se produce la explosión del Web, y Sun advierte que Java es ideal para aplicaciones Internet: – Independiente de la plataforma – Pequeño – Seguro 2

3 El Lenguaje Java Independiente de la plataforma Seguro Simple Robusto Orientado a Objetos Distribuido Multi-threaded Ref: http://www.oracle.com/technetwork/java/javase/documentation/index.h tml 3

4 El Modelo Java bytecode Al compilar un programa Java, se genera un código de máquina intermedio definido por Sun, que recibe el nombre de bytecode 4

5 El Modelo Java El código bytecode es portable entre diferentes plataformas 5

6 Tipos de Archivos Java Todo archivo define una clase o una interfaz Clase: – Define e implementa un tipo de objeto – Variables (representación) – Procedimientos (funciones) estáticos (especial: main) y dinámicos (se ejecutan sobre un objeto) Interfaz – Define la firma de un procedimiento 6

7 Un archivo básico para hacer un programa que corra 7 public class MiClase { static public void main(String[] args) { Aqui van las instrucciones que se ejecutarán cuando se “eche a correr” la clase } El programa debe ser escrito en un archivo llamado MiClase.java ( MiClase es el nombre de la “clase” y lo inventa el programador, por convención empieza con mayúscula Al compilarse se generará el archivo MiClase.class, que es el que se ejecuta Si se cambia algo en el programa hay que compilarlo de nuevo para que se refleje el cambio en el archivo class

8 Ejemplo 1 8 import java.util.*; //para usa Scanner public class MiClase { static public void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print(″Distancia (metros) ? ″); double d = s.nextDouble(); System.out.print(″Tiempo (segundos) ? ″); double t = s.nextDouble(); double v = (d/1000)/(t/3600); System.out.println(″Velocidad = ″+v+″ km/h″); }

9 Ejemplo 2 9 import java.util.*; //para usa Scanner public class ChequeoEdad { static public void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print(″Cual es tu nombre ? ″); String nomb = s.nectLine(); System.out.print(″Qué año nasciste ? ″); int an = s.nextInt(); int mls = System.currentTimeMillis(); int ah = (int)(mls/1000/3600/24/365.25 +1970); System.out.print(nomb+″ tiene cerca de “); System.out.print((an-ah)+” años “); }

10 Características del Lenguaje Case-sensitive: diferencias entre mayúsculas y minúsculas ; Todas las sentencias terminan con un punto- coma (;) Los espacios blancos (incluyendo tabs y fines de línea) se ignoran, excepto al interior de strings 10

11 Comentarios // // comentarioCaracteres desde // hasta el fin de línea son ignorados /* */ /* comentario */Caracteres entre /* y */ son ignorados /** */ /** comentario */ Caracteres entre /** y */ son ignorados e incluidos en la documentación javadoc 11

12 Javadoc 12

13 Identificadores Nombre dado a una variable, clase, o método Comienza con una letra Unicode (incluyendo _ y $), a la que pueden seguir letras y dígitos Puede tener cualquier tamaño Ejemplos – apellido – $ –  13

14 Tipos, Valores y Variables tipos En Java existen 2 categorías de tipos: – Primitivos – Primitivos: boolean, char, byte, short, int, long, float, double – Referencias – Referencias: objetos, interfaces, arreglos variable Una variable es un espacio de memoria que puede almacenar: 14 Tipo de la variablePuede almacenar PrimitivoUn valor del tipo que se declaró ClaseEl valor null, o una referencia a una instancia de la clase o de alguna subclase de la clase InterfazEl valor null, o una referencia a una instancia de alguna clase que implemente la interfaz ArregloEl valor null, o una referencia a un arreglo de elementos del tipo del arreglo

15 Tipos de Datos Primitivos TipoValores boolean truefalse true o false charCarácter Unicode (de 16 bits) byteEntero de 8 bits (con signo) shortEntero de 16 bits (con signo) intEntero de 32 bits (con signo) longEntero de 64 bits (con signo) floatNúmero flotante de 32 bits doubleNúmero flotante de 64 bits 15

16 Variables Una variable es un espacio de almacenamiento de datos, con un nombre y un tipo de datos asociado La existencia de una variable está dada por su alcance: – static – static (variable "de clase"): se crea una vez, sin importar cuántas instancias de la clase existan – no static – no static (variable "de instancia"): se crea una vez por cada instancia de la clase – local – local: se crea al ejecutarse la declaración, y desaparece al finalizar el bloque en el que fue creada 16

17 Valores Iniciales Variables de instancia y de clase – tipos primitivos numéricos0 – char'\u0000' – booleanfalse – referencias null Variables locales – Deben ser inicializadas explícitamente antes de ser usadas; de lo contrario se produce un error de compilación 17

18 Constantes Una vez inicializadas, no pueden ser modificadas final Se utiliza la palabra reservada final para definir una constante static Típicamente las constantes se definen como static, para no instanciarlas con cada objeto Ejemplo class Circulo { static final double PI = 3.1416; } 18

19 Conversión de Tipos Java es fuertemente tipeado – Chequea compatibilidad de tipos en tiempo de compilación – Permite hacer cast entre tipos – Provee operadores para determinar el tipo de un objeto en tiempo de ejecución 19

20 Conversion Implícita Cualquier valor numérico puede ser asignado a una variable numérica que seoporte un rango de valores más amplio byte short int long float double más chico más grande Ejemplo int i = 1000; double d = i; 20

21 Cast Explícito cast Cuando una conversión implícita no es posible, un cast explicita la conversión a realizar casts Sólo se permiten casts que tienen sentido 21

22 Cast de Tipos Primitivos Puede perderse precisión double d = 20.5; long l = (long) d; System.out.println(l); Pueden perderse dígitos long l = 1000000; short s; s = (short) l; System.out.println(s); 22 20 16960

23 Bloque { } Cualquier número de sentencias agrupadas entre un par de llaves { } Puede ser usado en cualquier lugar donde se acepta una sentencia simple ámbito (scope) El bloque define el ámbito (scope) de las variables El bloque provee contornos para el control de flujo del procesamiento 23

24 Ambito de Variables public class MiClase { int a; static int b; public void miMetodo( ) { int c; if (condicion){ { int d;... } } d fuera de ámbito } c fuera de ámbito } a y b fuera de ámbito 24

25 Operador de Asignación = Se usa el símbolo = para asignar un valor Ejemplo sueldo = 1000000; validado = true; La asignación puede ocurrir en la declaración String nombre = "Paula"; 25

26 Operadores Aritméticos + +Suma - -Resta * *Multiplicación / /División % %Resto 26

27 Métodos Estáticos Se identifican con el selector static Devuelven o no un resultado de un cierto tipo Reciben un número determinado de parámetros de tipo determinado Métodos de igual nombre pero con distinto número o tipo de parámetros son métodos distintos ! 27

28 Métodos en la misma clase 28 public class MiClase { ststic public int suma(int x, int y ) { return x+y; } static public int suma(int x, int y, int z) { return x+y+z } static public void main(String[] args) { System.out.println(suma(5,4)+” “+suma(2,3,4)); }

29 Métodos en otra clase 29 public class MiClase { //En archivo MiClase.java static public void main(String[] args) { System.out.println(Sumas.suma(5,4)+” “+ Sumas.suma(2,3,4)); } public class Sumas { //En archivo Sumas.java public int suma(int x, int y ) { return x+y; } static public int suma(int x, int y, int z) { return x+y+z }

30 Parámetros pasdos por valor public static int fact(int x) { resultado = 1; while (x > 1) { resultado *= x; x--; } return resultado; } public static void main(String[] args) { Scanner c = new Scanner(System.in); System.out.print(“ingrese un numero:”); int numero = c.nextInt(); int res = fact(numero); System.out.println(“El factorial de “+numero+” es “+res); //numero no se modifica porque se le pasa una copia }

31 Operadores Abreviados var op= expression es equivalente a: var = var op (expression) Ejemplo a *= b + 1; es equivalente a: a = a * (b + 1); 31

32 Incremento y Decremento i++ es equivalente a i = i + 1 i-- es equivalente a i = i - 1 El valor de la expresión es el valor de la variable antes o después de la operación, según si el operador se encuentra a la izquierda o a la derecha del operando Ejemplo int x = 10; System.out.println( x++ ); // x=11, print 10 System.out.println( ++x ); // x=12, print 12 System.out.println( x ); // print 12 32

33 Sentencias de Control de Flujo if / else switch for while do / while 33

34 if if ( result == 0 ) { System.out.println("No encontrado!"); } 34

35 if / else if (rol.equals("administrador")) { // acceso a administración; } else { // no tiene acceso a administración } 35

36 Operadores Relacionales > > Mayor >= >= Mayor o igual < < Menor <= <= Menor o igual == == Igual != != Distinto 36

37 Operadores Lógicos && && and || || or ! ! not Ejemplo boolean fin = eof || (str != null && str.equals(patron)); 37

38 if / else public static diasVac(int años) { if ( años 100) vacaciones = -1; if ( años < 5 ) { vacaciones = 10; } else if ( años < 10 ) { vacaciones = 15; } else { vacaciones = 20; } return vacaciones; } 38

39 Operador "?" Expresión condicional: – condición ? expresión 1 : expresión 2 El valor de la expresión es expresión 1 si la condición es verdadera, y expresión 2 de lo contrario Ejemplo montoNeto = hayImpuesto ? p * 1.05 : p; es equivalente a: 39 if (hayImpuesto) { montoNeto = p * 1.05; } else { montoNeto = p; }

40 40 Más ejemplos: static public int factorial(int x){ return x==0 ? 1 : x*factorial(x-1); } es equivalente a: static public int factorial(int x){ if(x==0) return 1; else return x*factorial(x-1); } static public int digitos(int x){ return x<10 ? 1 : 1+digitos(x/10); } es equivalente a: static public int digitos(int x){ if(x<10) return 1; else return 1+digitos(x/10); }

41 while y do while Sintaxis 1: se ejecuta 0 o más veces while ( condición ) { sentencias } Sintaxis 2: se ejecuta 1 o más veces do { sentencias } while ( condición ); 41

42 break break break causa el fin del ciclo en el que se encuentra while ( condición ) { sentencias… if (condición de salida) { break; } más sentencias… } 42

43 continue continue continue causa el fin de la iteración actual y el paso a la siguiente while ( condición ) { sentencias… if (condición siguiente iteración) { continue; } más sentencias… } (ver ejemplos instrucciones especiales) 43

44 Programa que calcule el promedio de una cantidad indeterminada de números: Scanner s = new Scanner(System.in); double suma=0; int n=0; double numero=s.nextDouble(); while( numero != 0 ) { suma=suma+numero; n=n+1; System.out.println(“promedio=”+suma/n); numero=s.nextDouble(); } 44

45 Refinamiento : La asignación como expresión Scanner s = new Scanner(System.in); double suma, numero; int n; suma = n = 0; while((numero=s.nextDouble())!=0) System.out.println(“promedio=” + (suma=suma+numero)/(n=n+1)); } //otra posibilidad System.out.println(“promedio=”+ (suma+=numero)/(n+=1)); 45

46 switch Selección múltiple int switch debe evaluar un int literalstatic final case debe ser un literal o un campo static final break break abandona el bloque del switch (de otra manera los siguientes cases son ejecutados sin ser evaluados) default El bloque default es opcional 46 switch ( ) { case :... break; case :... break; default:... }

47 Ejemplo de switch public static void main(String[] args) { switch (args.length) { case 0: FileEditor e = new FileEditor(); break; case 1: FileEditor e = new FileEditor(args[0]); break; default: // mensaje de error y fin } 47

48 Función que entregue el Nº de días de un mes static public int diasMes(int x){... } Solución 1. Con if sin else int d=0; if( x==1 ) d=31; if( x==2 ) d=28; if( x==3 ) d=31; if( x==4 ) d=30; if( x==5 ) d=31; if( x==6 ) d=30; if( x==7 ) d=31; if( x==8 ) d=31; if( x==9 ) d=30; if( x==10 ) d=31; if( x==11 ) d=30; if( x==12 ) d=31; return d; evalúa 12 condiciones siempre

49 Solución 2. Con selección múltiple if-else if-...-else int d=0; if( x==1 ) d=31; else if( x==2 ) d=28 else if( x==3 ) d=31; else if( x==4 ) d=30; else if( x==5 ) d=31; else if( x==6 ) d=30; else if( x==7 ) d=31; else if( x==8 ) d=31; else if( x==9 ) d=30; else if( x==10 ) d=31; else if( x==11 ) d=30; else if( x==12 ) d=31; return d; evalúa x condiciones (12 en el peor caso)

50 Solución 3. Con Instrucción switch (una evaluación) int d; switch(x){ case 1: d=31; break; case 2: d=28; break; case 3: d=31; break; case 4: d=30; break; case 5: d=31; break; case 6: d=30; break; case 7: d=31; break; case 8: d=31; break; case 9: d=30; break; case 10: d=31; break; case 11: d=30; break; case 12: d=31; break; default: d=0; } return d;

51 Solución 4 int d=0; switch(x){ case 1:case 3:case 5:case 7:case 8:case 10:case 12: d=31; break; case 4:case 6:case 9:case 11: d=30; break; case 2: d=28; break; } return d; alternativamente : switch(x){ case 1:case 3:case 5:case 7:case 8:case 10:case 12: return 31; case 4:case 6:case 9:case 11: return 30; case 2: return 28; } return 0;

52 for Sintaxis for (inicialización; condición; reinicialización) { sentencias } Nota – inicializaciónreinicialización – inicialización y reinicialización pueden ser listas de expresiones separadas por comas 52

53 Ejemplo de for for ( x=0; x<10; x++ ) { // ejecuta el bloque mientras x < 10 } for ( x=0, y=0; y<20; x++, y+=x ) { // ejecuta el bloque mientras y < 20 } 53

54 54 static public boolean primo(int x) { if(x%2==0) return x==2; for(int i=3; i<=(int)Math.sqrt(x); i+=2) if(x%i==0) return false; return true; } System.out.println(“primos terminados en 1:”); for(int i=1; i<=100; i+=10) if(primo(i)) U.println(i); System.out.println(“primos terminados en 3:”); for(int i=3; i<=100; i+=10) if(primo(i)) U.println(i); for(int i=1; i<=9; i+=2) { System.out.println(“primos terminados en “+i); for(int j=i; j<=100; j+=10) if(primo(j)) U.println(j); } Ejemplo de for

55 Etiquetas (Labels) Los labels se usan típicamente en bloques y ciclos Un label es un identificador seguido de dos puntos: Label1: El label identifica la siguiente sentencia 55

56 Ejemplo search: for (...) { for (…) { if (...) { break search; } 56


Descargar ppt "Java Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Soporta clases, encapsulación,"

Presentaciones similares


Anuncios Google