slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java PowerPoint Presentation
Download Presentation
Java

Loading in 2 Seconds...

play fullscreen
1 / 41

Java - PowerPoint PPT Presentation


  • 157 Views
  • Uploaded on

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. El Modelo Java.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Java' - menora


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Java
  • Java (1995) fue desarrollado enSun Microsystems por James Gosling, Bill Joy y Guy Steele
  • Influenciado por C++
  • Soporta clases, encapsulación, herencia simple, polimorfismo, interfaces, garbage collection
el modelo java
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
el modelo java1
El Modelo Java
  • El códigobytecodees portable entre diferentesplataformas
tipos de archivos java
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
un archivo b sico para hacer un programa que corra
Un archivo básico para hacer un programa que corra

public class MiClase{

static public void main(String[] args) {

Aquivan lasinstruccionesque se ejecutaráncuando se “eche a

correr” la clase

}

}

  • El programadebe ser escrito en un archivollamadoMiClase.java (MiClasees el nombre de la “clase” y lo inventa el programador, porconvenciónempieza con mayúscula
  • Al compilarse se generará el archivoMiClase.class, quees el que se ejecuta
  • Si se cambia algo en el programa hay quecompilarlo de nuevoparaque se refleje el cambio en el archivo class
ejemplo 1
Ejemplo 1

import java.util.*; //parausa 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″);

}

}

ejemplo 2
Ejemplo 2

import java.util.*; //parausa Scanner

public class ChequeoEdad {

static public void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.print(″Cualestunombre ? ″);

String nomb = s.nectLine();

System.out.print(″Quéañonasciste ? ″);

int an = s.nextInt();

intmls = System.currentTimeMillis();

int ah = (int)(mls/1000/3600/24/365.25 +1970);

System.out.print(nomb+″ tienecerca de “);

System.out.print((an-ah)+” años “);

}

}

tipos valores y variables
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
  • Una variable es un espacio de memoria que puede almacenar:
constantes
Constantes
  • Una vez inicializadas, no pueden ser modificadas
  • Se utiliza la palabra reservada final para definir una constante
  • Típicamente las constantes se definen como static, para no instanciarlas con cada objeto
  • Ejemplo

class Circulo {

static final double PI = 3.1416;

}

conversi n de tipos
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
conversion impl cita
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;

cast expl cito
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
cast de tipos primitivos
Cast de TiposPrimitivos
  • 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);

20

16960

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

m todos est ticos
MétodosEstá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 !
m todos en la misma clase
Métodos en la mismaclase

public class MiClase{

ststic public intsuma(int x, int y ) {

return x+y;

}

static public intsuma(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));

}

}

m todos en otra clase
Métodos en otraclase

public class Sumas { //En archivo Sumas.java

public intsuma(int x, int y ) {

return x+y;

}

static public intsuma(int x, int y, int z) {

return x+y+z

}

}

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

}

}

sentencias de control de flujo
Sentencias de Control de Flujo
  • if / else
  • switch
  • for
  • while
  • do / while
slide21
if

if ( result == 0 ) {

System.out.println("No encontrado!");

}

if else
if / else

if (rol.equals("administrador")) {

// acceso a administración;

} else {

// no tieneacceso a administración

}

operadores relacionales
OperadoresRelacionales

> Mayor

>= Mayor o igual

< Menor

<= Menor o igual

==Igual

!= Distinto

operadores l gicos
OperadoresLógicos

&& and

|| or

! not

  • Ejemplo

boolean fin =

eof ||

(str != null && str.equals(patron));

if else if else
if / else if / else

public static diasVac(intaños) {

if ( años < 0 || años > 100)

vacaciones = -1;

if ( años < 5 ) {

vacaciones = 10;

} else if ( años < 10 ) {

vacaciones = 15;

} else {

vacaciones = 20;

}

return vacaciones;

}

operador
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:

if (hayImpuesto) {

montoNeto = p * 1.05;

} else {

montoNeto = p;

}

slide27

Másejemplos:

static public intfactorial(int x){

return x==0 ? 1 : x*factorial(x-1);

}

esequivalente a:

static public intfactorial(int x){

if(x==0) return 1; else return x*factorial(x-1);

}

static public intdigitos(int x){

return x<10 ? 1 : 1+digitos(x/10);

}

esequivalente a:

static public intdigitos(int x){

if(x<10) return 1; else return 1+digitos(x/10);

}

while y do while
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 );

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…

}

continue
continue
  • continuecausa el fin de la iteración actual y el paso a la siguiente

while ( condición ) {

sentencias…

if (condiciónsiguienteiteración) {

continue;

}

mássentencias…

}

(verejemplosinstruccionesespeciales)

programa que calcule el promedio de una cantidad indeterminada de n meros
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();

}

refinamiento la asignaci n como expresi n
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));

switch
switch

switch (<expresión>) {

case <expresión>: ... break;

case <expresión>: ... break;

default: ...

}

  • 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
ejemplo de switch
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

}

}

slide35

Función que entregue el Nº de días de un mes

static public intdiasMes(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

slide36

Solución 2. Con selección múltiple if-elseif-...-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)

slide37

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;

slide38

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;

slide39
for
  • Sintaxis

for (inicialización; condición; reinicialización) { sentencias }

  • Nota
    • inicialización y reinicialización pueden ser listas de expresiones separadas por comas
ejemplo de for
Ejemplo de for

for ( x=0; x<10; x++ ) {

// ejecuta el bloquemientras x < 10

}

for ( x=0, y=0; y<20; x++, y+=x ) {

// ejecuta el bloquemientras y < 20

}

slide41

Ejemplo de for

static public boolean primo(int x){

if(x%2==0) return x==2;

for(inti=3; i<=(int)Math.sqrt(x); i+=2)

if(x%i==0) return false;

return true;

}

System.out.println(“primos terminados en 1:”);

for(inti=1; i<=100; i+=10)

if(primo(i)) U.println(i);

System.out.println(“primos terminados en 3:”);

for(inti=3; i<=100; i+=10)

if(primo(i)) U.println(i);

for(inti=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);

}