Upload
dalit
View
67
Download
0
Embed Size (px)
DESCRIPTION
Computación Avanzada. Profesor: María Fátima De Abreu Período Lectivo 1-2005 Universidad de Carabobo. Facultad de Ingeniería. Dpto. de Computación. El lenguaje Java. - PowerPoint PPT Presentation
Citation preview
Computación AvanzadaComputación Avanzada
Profesor: María Fátima De AbreuPeríodo Lectivo 1-2005
Universidad de Carabobo. Facultad de Ingeniería. Dpto. de Computación
El lenguaje JavaEl lenguaje Java
Java es un lenguaje de programación orientado a objetos diseñado para ser portable en diversas plataformas y sistemas operativos. Desarrollado por Sun Microsystems en 1995.
Es orientado a objetos Es independiente de la plataforma Es Seguro Es Robusto Es confiableEs fácil de aprender Se ajusta a Internet Es gratuito
Compilador de JavaCompilador de Java
Como bajarlo de Internethttp://java.sun.com
Como instalarlohttp://java.sun.com/j2se/1.4.2/install-windows.html
Elementos del LenguajeElementos del Lenguaje
ComentariosUna sola línea
int maxEcua = 4; // máximo número de ecuaciones
Varias líneas/* Programa que determina la solución de un sistema
de ecuaciones utilizando el método de Gauss Jordan*/
Convenciones de codificación
Tipos de DatosTipos de Datos
PrimitivosUna variable de tipo primitivo contiene un valor simple : un número, un carácter o un valor booleano
Referencia (apuntador)Un dato cuyo valor es una dirección de memoria
Conversión de tiposConversión de tipos
Conversión de tipos (casting) Se permite entre tipos numéricos. Se puede convertir de carácter a
entero y viceversa. No se puede convertir booleanos a números y viceversa.
Conversión de un dato de un tipo menor a uno mayor (Conversión automática) double < float < long < int < short < byte
Ejemplo:long sumaEdades;short edad = 15;sumaEdades = edad; //convierte automaticamente short a long
Conversión de un dato de un tipo mayor a uno menor : (tipo_dato) expresión_a_convertir
Ejemplo:float kilogramos, resultado;double calculo, valor;// casting kilogramos = (float)(calculo * 1.2); resultado = (float) valor;
VariablesVariables
Declaración de variablestipo identificador;int x;
short diaSemana;
Inicialización de variablesfloat sueldo = 12.45;int a, b, c;long z, y;z = y = a = b = c = 0;
Si no se inicializan las variables Java asignará cero a las variables de tipo numérico (enteros y reales), false a las de tipo bolean, \u0000 a las de tipo char.
Los nombres de variables deben comenzar con una letra en minúscula. Si el nombre se deriva de una combinación de palabras las subsiguientes palabras deben comenzar con una letra mayúscula. Puede ser nombres cortos pero con significado, de modo que cualquier lector infiera su uso a partir de su nombre.
ConstantesConstantes
Declaración de constantesfinal tipo identificador = valor;
final float ACELERACION = 9.8;
La palabra final es un modificador de acceso que indica que ese es el valor final del lugar de memoria y que evita que su valor pueda ser modificado
Diferenciación de mayúsculas y Diferenciación de mayúsculas y minúsculasminúsculas
Al escribir identificadores, por ejemplo el identificador Sueldo es diferente del identificador sueldo. Todas las sentencias de Java deben escribirse en minúsculas, por ejemplo al escribir la sentencia if else, el compilador generaría un error si no se escriben en minúsculas.
Operadores de un solo operandoOperadores de un solo operando
Operadores unariosoperador operando //notación de prefijoEjemplo:
y = -x;
--z;
operando operador //notación de postfijoEjemplo:
x++;
Operadores de dos operandosOperadores de dos operandos
Operadores binariosop1 operador op2 //notación de infijo
Ejemplo: y = a + b;
z = (a + b)* y;
int x = (int)(Math.random()*10);
Operadores de tres operandosOperadores de tres operandos
Operadores ternariosop1 ? op2 : op3 //notación de infijo
Ejemplo:boolean z = (a+b>0)? true :false;
Operadores AritméticosOperadores Aritméticos
Operadores aritméticos Prioridad de los operadores aritméticosgrupo 0: ( ) (paréntesis)grupo 1: ++ -- + (unario) – (unario)grupo 2: * / %
Los paréntesis se utilizan para especificar el orden en que deben ejecutarse las operaciones:
Operadores AritméticosOperadores Aritméticos
Operadores de incremento y decremento
Ejemplo:int y, x = 10;
y = x++ + 5; //al evaluar; y = 15, x = 11
y = ++x + 5; //al evaluar; y = 17, x = 12
y = x-- + 5; //al evaluar; y = 17, x = 11
y = --x + 5; //al evaluar; y = 15, x = 10
Operadores RelacionalesOperadores Relacionales
Operadores relacionales
¿Cómo comparar valores de punto flotante?
Operadores Lógicos y de Operadores Lógicos y de desplazamiento de bitsdesplazamiento de bits
Operadores lógicos
Operadores lógicos a nivel de bits
Operadores de desplazamiento de bits
Otros OperadoresOtros Operadores
Operador condicional ternarioif (mes == 2)ultimoDia = (anho % 4 == 0)? 29 : 28;
Operador new (pedir memoria)int arreglo1[] = new int[100]; Circulo obj = new Circulo();
Resumen Prioridad de Operadores
Salida por ConsolaSalida por Consola
System.out.println(e);
Donde e son elementos a escribir concatenados con el operador +
Ejemplo:float s = 123.456789;System.out.println(“Suma = ” + s + “\n”);System.out.println((int)(s*1000)/1000.0);
Asignación Asignación
Asignación sencillavariable = expresión;
temperatura = 25.5;
Escritura de expresiones de asignación muy frecuentes
Estructuras SelectivasEstructuras Selectivas
Selectiva simple
if (condicion) {// bloque de sentencias
}
if (edad > 18) sumaMayor++;
if (edad > 18){sumaMayor++;contador++;
}
Estructuras SelectivasEstructuras Selectivas
Selectiva doble
if (condicion) {
// bloque de sentencias
}
else{
// bloque de sentencias
}
if (edad > 18) sumaMayor++;else
sumaMayor--;
if (edad > 18){sumaMayor++;contador++;
}else{sumaMayor--;contador--;
}
Estructuras SelectivasEstructuras Selectivas
Selectiva múltiple if else if
if (condicion1){//bloque de sentencias 1
}else if (condicion2){//bloque de sentencias 2
else{//bloque de sentencias
}
if (nota >= 9)calificacion = “SB”;
else if (nota >= 7)calificacion = 'N';
else if (nota >= 5)calificacion = 'A';
else calificacion = 'S';
Estructuras SelectivasEstructuras Selectivas
Pérdida del elseif (temperatura > 37)
if (tensionArterial > 12)
contadorEnfermo++;
else contadorSaludable++;
el else está asociado al if inmediatamente anterior
if (temperatura > 37) { if (tensionArterial > 12) contadorEnfermo++;}else contadorSaludable++;
Estructuras SelectivasEstructuras Selectivas
Selectiva Múltipleswitch (expresión){case constante1: sentencia; break;case constante1: sentencia; break;....default: sentencia; break;
} switch (califLetra){ case 'A': puntos = 20; break; case 'B': puntos = 12; break; case 'C': puntos = 8; break; default : puntos = 0; break;}
Estructuras RepetitivasEstructuras Repetitivas
Mientraswhile (condición){ // bloque de sentencias
}
raiz = 1;while ((raiz * raiz) < x) raiz++;
raiz = 1;while ((raiz * raiz) < x){ System.out.println(“raiz: ”+raiz); raiz++; }
Estructuras RepetitivasEstructuras Repetitivas
Hacer mientrasdo{ // bloque de sentencias}while (condición);
raiz = 0;do{ raiz++;}while((raiz * raiz) < x));
Estructuras RepetitivasEstructuras Repetitivas
Desde o Parafor ( iniciaVarControl; condición; incremento ){// bloque de sentencias
}
suma = 0; for(int i = 1; i <= n; i++) suma += i; for(float r = 0.0; r <= 15.0; r += 0.1) System.out.println("Valor: " + r) ;
for( int i = 100; i >= 5; i -= 5 ) System.out.println("Valor: " + i); boolean encontrado = false:for( ; !encontrado; ){ // bloque de sentencias}
for( int i = 1, multiplo3 = 1; i <= 5; i++, multiplo3 += 2 ) System.out.println("Valor: " + multiplo3) ;
MétodosMétodos
Método con resultado tipo_a_retornar identificador( lista
de parametros formales){ //bloque de sentencias return valor_ a_retornar ;}
El valor a retornar puede ser un valor de tipo primitivo o una referencia
Las variables locales no se inicializan por defecto
double cubo( float x ){ return x*x*x;}
MétodosMétodos
Método tipo void void identificador( lista de parametros formales){ // bloque de sentencias}
void inicializa( float r, float l ){radio = r;longitud = l;
}
void mensaje(){ System.out.println("Hola amigos");}
Llamada a un métodoLlamada a un método
x += cubo(3);
System.out.println(cubo(3));
inicializa(2.5, 2);
inicializa(r, l);
mensaje();
En Java el pase de parámetros es por valor
MétodosMétodos
Sobrecarga de métodos (polimorfismo en la sobrecarga)
class Desarmadores{ int tamanhoPunta( float ancho, float espesor,
float altura ){ // bloque de sentencias }
int tamanhoPunta( float ancho ){ // bloque de sentencias } int tamanhoPunta(int indiceEstandard){ // bloque de sentencias }
}
Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)
Declaración y Creación tipo[] nomVector = new tipo[numElementos];
tipo nomVector[] = new tipo[numElementos];
al crear un arreglo de objetos, Java lo inicializa en null, indicando que el arreglo aún no contiene objetos
int[] edades = new int[20];String[] ciudades = new String[50]; int edades[] = new int[20]; Date fiestas[] = new Date[16];
Los índices van desde 0 hasta numElementos-1
Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)
Creación e inicialización char vocales [] = {'a', 'e', 'i', 'o', 'u'};
boolean [] respuestas = { true, false, true, true};
long cont[] = {10, 15, 20, 25};
Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)
Acceso a los elementos nomVector[índice]
Recorrido
int a[] = {1,2,3,4,5};
for (int k = 0; k < a.length; k++){ System.out.println( a[k] );}
Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)
Como parámetros de métodos
void ordenar( int x[], int n ){…}
final int N = 100;int a[] = new int[N];ordenar(a, N);
En la llamada se pasa la referencia al arreglo
Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)
Asignación de arreglos
final int N = 100;
int a[] = new int[N];int b[] = new int[20];
a = b;
En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b
Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)
Declaración y Creación tipo nomMatriz[][] = new tipo[numFilas][numColumnas]; tipo[][] nomMatriz = new tipo[numFilas][numColumnas];
int ventas[][] = new int[20][12];
String [ ][ ] calendario = new String[5][7];
Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)
Creación e inicialización tipo nomMatriz[ ][ ] = {{lista de valores de la fila 0}, {lista de valores de la fila 1},..};
int matriz [][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)
Acceso a los elementos nomMatriz [indFila] [indColumna]
Recorrido
int ventas[][] = new int[20][12];
for (int i = 0; i < ventas.length; i++) for (int j = 0; j < ventas[i].length; j++){ ventas[i][j] = (i*10 + k); System.out.println(ventas[i][j]);}
Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)
Como parámetros de métodos
void ordenar( int x[][], int m, int n ){…}
final int N = 100;int a[][] = new int[N][N];ordenar(a, N, N);
En la llamada se pasa la referencia al arreglo
Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)
Asignación de arreglos
final int N = 100;
int a[][] = new int[N][20];int b[][] = new int[20][N];
a = b;
En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b
Arreglos MultidimensionalesArreglos Multidimensionales
El número de corchetes requeridos varía de acuerdo a la dimensión del arreglo.
String [ ][ ][ ] arregloMulti = new String [10][5][3];
FinFin