Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJessenia Lagos Modificado hace 9 años
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.