La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unit 1: Overview and Positioning

Presentaciones similares


Presentación del tema: "Unit 1: Overview and Positioning"— Transcripción de la presentación:

1 Unit 1: Overview and Positioning
Fast Track to Java Unit 1: Overview and Positioning 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

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

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

4 Unit 1: Overview and Positioning
Fast Track to Java Unit 1: Overview and Positioning 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 (uno especial: main) y dinámicos (se ejecutan sobre un objeto) Interfaz Define la firma de un procedimiento

5 Un archivo básico para hacer un programa que corra
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

6 Ejemplo 1 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″); }

7 Ejemplo 2 import java.util.*; //para usa Scanner public class Procentajes { static public void main(String[] args) { System.out.println(“Porcentajes de enteros a,b,c“); Scanner U = new Scanner(System.in); System.out.println(“Ingrese 3 nums. “); int a = U.nextInt(); int b = U.nextInt(); int c = U.nextInt(); double factor=100.0/(a+b+c); System.out.println(”a=” + a*factor + ”%”); System.out.println(”b=” + b*factor + ”%”); System.out.println(”c=” + c*factor + ”%”); }

8 Ejemplo 3 public class CambiarFormatoFecha {
import java.util.*; //para usa Scanner public class CambiarFormatoFecha { static public void main(String[] args) { Scanner U = new Scanner(System.in); System.out.print(“Fecha en aaaammdd : “); int n = U.nextInt(); int a=n/10000, d=n%100, d2=n%10000/100; System.out.print(“Fecha en dd/mm/aaaa : “); System.out.print(d+“/”+m+”/“+a); }

9 Tipos, Valores y Variables
En Java existen 2 categorías de tipos: Primitivos: boolean, char, byte, short, int, long, float, double Referencias: objetos, interfaces, arreglos (listas de valores) Una variable es un espacio de memoria que puede almacenar: Tipo de la variable Puede almacenar Primitivo Un valor del tipo que se declaró Clase El valor null, o una referencia a una instancia de la clase o de alguna subclase de la clase Interfaz El valor null, o una referencia a una instancia de alguna clase que implemente la interfaz Arreglo El valor null, o una referencia a un arreglo de elementos del tipo del arreglo

10 Tipos de Datos Primitivos
Valores boolean true o false char Carácter Unicode (de 16 bits) byte Entero de 8 bits (con signo) short Entero de 16 bits (con signo) int Entero de 32 bits (con signo) long Entero de 64 bits (con signo) float Número flotante de 32 bits double Número flotante de 64 bits

11 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

12 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;

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

14 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 = ; short s; s = (short) l; System.out.println(s); 20 16960

15 Funciones Matemáticas Predefinidas
import java.util.*; //para usa Scanner public class Triangulo { static public void main(String[] args) { System.out.println(“triángulo:lados a,b, y angulo alfa”); Scanner U = new Scanner(System.in); System.out.println(“a b alfa ”), double a = U.nextDouble(), b=U.nextDouble(), alfa = U.nextDouble()* Math.PI/180; double c = Math.sqrt(Math.pow(a * Math.sin(alfa),2)+ Math.pow(b - a * Math.cos(alfa),2)); System.out.println(“Perímetro=” + (a+b+c)); double s=(a+b+c)/2; //semi-perimetro System.out.println(“Area=“+Math.sqrt(s*(s-a)*(s-b)*(s-c))); }

16 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 !

17 Métodos en la misma clase
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));

18 Unit 1: Overview and Positioning
Métodos en otra clase Fast Track to Java Unit 1: Overview and Positioning class F { //En archivo F.java static public int aaaammdd(int x){ int d = x/ , m = x/10000%100, a = x%10000; return a* m*100 + d; } static public int ddmmaaaa(int x){ int d = x%100, m = x/100%100, a = x/10000; return a + m* d* ; public class MiClase { //En archivo MiClase.java static public void main(String[] args) { int f1= , f2= ; // fecha DDMMAAAA System.out.println(“mayor=“+ Math.max( F.aaaammdd(f1), F.aaaammdd(f2))); }

19 Funciones definidas en clase Math

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

21 If / if else if ( money == 0 ) { System.out.println(“Pide prestado mejor!"); } // si es solo una instruccion los parentesis pueden omitirse if ( money >= 20000) { System.out.println(“Yo invito !”); } else { System.out.println(“Hazte el leso”);

22 Operadores Relacionales
Operadores Lógicos > Mayor >= Mayor o igual < Menor <= Menor o igual == Igual != Distinto && and || or ! not

23 Ejemplo diasMes static public int diasMes(int m,int a){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) return 31; else if(m==4||m==6||m==9||m==11) return 30; else if(m==2)//if(cond simple) sin else if(bisiesto(a)) return 29; else return 28; return 0;//mes incorrecto } static public boolean bisiesto(int x){ return x%4==0 && x%100!=0 || x%400==0;

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

25 Ejemplo diasMes Con switch
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;

26 clase 6 (operadores/insts especiales)
Solución 2 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: return 31; return 30; return 28; return 0; clase 6 (operadores/insts especiales) 8-agosto (J.Alvarez)

27 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 while ( condición );

28 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…

29 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)

30 Clase 8: Repaso/Resumen
Ejemplos //tabla celsius – fahrenheit cada 5°C int g=-20; while(g<=40){ System.out.println(g+”ºC=“+(9.0/5.0*g+32)+”ºF”); g=g+5; } //calculo de promedio de notas válidas int suma = 0, n = 0; Scanner U = new Scanner(System.in); while(true) { double x = U.nextDouble(); if (x == 0) break; // fin de datos if (x < 1.0 || x > 7.0) continue; suma += x; x++; System.out.println(“Promedio = “+suma/n); Viernes 4 de Abril

31 Operadores especiales
Clase 8: Repaso/Resumen Operadores especiales double suma, mayor, numero; int n; suma = mayor = n = 0; while((numero=U.readDouble("nº?"))!=0){ U.println(“prom=”+(suma+=numero)/ ++n); mayor=max(numero,mayor); } U.println(“mayor=“+mayor); static public double max(double x,double y){ return x>y ? x : y; Viernes 4 de Abril

32 for Sintaxis for (inicialización; condición; reinicialización) { sentencias ; (si es una sola se pueden omitir {}) } inicialización y reinicialización pueden ser listas de expresiones separadas por comas for ( x=0; x < 10; x++ ) { // ejecuta el bloque mientras x < 10 } for ( x=0, y=0; x < 20; x++, y++ ) { // ejecuta el bloque mientras x e y < 20

33 Unit 1: Overview and Positioning
Ejemplos de for Fast Track to Java Unit 1: Overview and Positioning 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; } 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)) System.out.println(j);


Descargar ppt "Unit 1: Overview and Positioning"

Presentaciones similares


Anuncios Google