Vous êtes sur la page 1sur 41

Computacin Avanzada

Prof. ngel D. Almarza M.


Departamento de Computacin. Ctedra de Computacin Avanzada.
Lenguaje de Programacin
Java es un lenguaje de programacin orientado a
objetos diseado para ser portable en diversas
plataformas y sistemas operativos. Desarrollado
por Sun Microsystems en 1995.

Es orientado a objetos (POO)


Es independiente de la plataforma (independiente del sistema op.)
Es Seguro
Es Robusto
Es Confiable
Es fcil de aprender (estructuras similares, lenguaje C, C++)
Se ajusta a Internet (diseo de applets)
Es gratuito (disponible online)

Introduccin
Requerimientos
Java SE Development Kit 8 (JDK)
Contiene elementos necesarios para ejecutar un programa
independiente de la plataforma por medio de la mquina virtual de java
(JVM).

Entornos Integrados de Desarrollo + JDK:


NetBeans versin 8.1: descarga gratuita en lnea (300 MB aprox.)
disponible en:

Requerimientos
Elementos del Lenguaje
Sensible al uso de maysculas y minsculas
Al escribir identificadores, por ejemplo el identificador Edad es diferente
del identificador edad.
Todas las sentencias de Java deben escribirse en minsculas, por
ejemplo al escribir la sentencia if, el compilador generara un error al
escribirlo en maysculas.

Comentarios
Una sola lnea:
int max = 10; //cantidad de elementos
Mltiples lneas:
/* Mtodo que retorna el mayor valor de un vector v de tV
* elementos tipo int
*/

Convenciones de codificacin
Enlace a convenciones

Elementos del Lenguaje


Tipos de Datos
Primitivos
Una variable de tipo primitivo contiene un valor simple: un nmero
(entero o real), un carcter (char), o un valor tipo boolean.

Referencias de Memoria o Apuntadores


Un dato cuyo valor es una direccin de memoria

Elementos del Lenguaje


Variables
Declaracin de variables
tipo identificador;
int x; Si no se inicializan las variables Java
short diaSemana; asignar cero a las variables de tipo
numrico (enteros y reales), false a
las de tipo
Los nombres boolean, \u0000
de variables debena comenzar
las de
tipo
con una char.
letra en minscula. Si el nombre se
deriva de una combinacin de palabras las
subsiguientes palabras deben comenzar con
Inicializacin de unavariables
letra mayscula. Puede ser nombres
cortos pero con significado, de modo que
float sueldo = 12.45F;
cualquier lector infiera su uso a partir de su
int a, b, c; nombre.
long z, y;
z = y = a = b = c = 0;
Elementos del Lenguaje
Conversin de Tipos
Conversin automtica
Conversin de un dato de un tipo menor a uno mayor
double < float < long < int < short < byte
Ejemplo:
long sumaEdades;
short edad = 15;
sumaEdades = edad; //convierte automaticamente short a long

Conversin de tipo (casting)


Se permite entre tipos numricos. Se puede convertir de carcter
a entero y viceversa. No se puede convertir booleanos a
nmeros y viceversa. Incluye conversin de un dato de tipo
mayor a uno menor.
(tipo_dato) expresin_a_convertir
Ejemplo:
float kilogramos, resultado;
double calculo, valor;
// casting
kilogramos = (float)(calculo * 1.2);
resultado = (float) valor;
Elementos del Lenguaje
Constantes
El identificador de una constante debe escribirse en
MAYSCULAS.
Declaracin
final tipo IDENTIFICADOR = valor;

Ejemplo:
final float ACELERACION = (float)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 pueda ser
modificado.
Elementos del Lenguaje
Operadores
Operadores unarios: operadores de un solo operando
operador operando //notacin de prefijo
Ejemplo:
y = -x;
--z;

operando operador //notacin de postfijo

Ejemplo:
x++;

Elementos del Lenguaje


Operadores
Operadores binarios: operadores de dos operandos
op1 operador op2 //notacin de infijo

Ejemplo:
y = a + b;
z = (a + b)* y;
int x = (int)(Math.random() * 10);

Mtodo de la Clase
Math para generar
nmeros aleatorios entre
0 y 1.
Elementos del Lenguaje
Operadores
Operadores ternarios: operadores de tres operandos

op1 ? op2 : op3 //notacin de infijo

Ejemplo:
int z = (a+b>0) ? 1 : -1;

Elementos del Lenguaje


Operadores Aritmticos
Operadores aritmticos
Prioridad de los operadores aritmticos
grupo 0: ( ) (parntesis)
grupo 1: (unario) ++ --
grupo 2: * / %
grupo 3: + - + (concatenacin de cadenas de caracteres)
Los parntesis se utilizan para especificar el
orden en que deben ejecutarse las operaciones.

Elementos del Lenguaje


Operadores Aritmticos
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

Elementos del Lenguaje


Operadores Relacionales
Operadores relacionales: > ; <; >=; <=; !=; ==

Cmo comparar valores de punto flotante?


final double TOLERANCIA= 0.0001;
double a = 12.45;
double b = 12.49:
Math.abs(a-b) <= TOLERANCIA
Solo es posible realizar
comparaciones indirectas.
P.E: Retorna true si a y b son
iguales. Se calcul la diferencia
absoluta entre ambos valores para
compararlo con la tolerancia de
clculo.
Elementos del Lenguaje
Operadores Lgicos y de
desplazamiento de bits
Operadores lgicos
&& (and); || (or)

Operadores lgicos a nivel de bits


& (and a nivel de bit) ; | (or a nivel de bits)

Operadores de desplazamiento de bits


>> ; << ; >>> (no conserva el signo)
Otros Operadores
Operador condicional ternario
if (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 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);
Asignacin
Asignacin sencilla
variable = expresin;
temperatura = 25.5;

Escritura de expresiones de asignacin


muy frecuentes
Estructuras Selectivas
if (edad > 18)
Selectiva simple sumaMayor++;

if (condicion) {
// bloque de sentencias
} if (edad > 18){
sumaMayor++;
contador++;
}
Estructuras Selectivas
if (edad > 18)
sumaMayor++;
Selectiva doble else
sumaMayor--;

if (condicion) {
// bloque de sentencias
} if (edad > 18){
else{ sumaMayor++;
contador++;
// bloque de sentencias
}else{
sumaMayor--;
} contador--;
}
Estructuras Selectivas
Selectiva mltiple if else if
if (nota >= 9)
calificacion = B;
if (condicion1){ else if (nota >= 7)
calificacion = 'N';
//bloque de sentencias 1
else if (nota >= 5)
}else if (condicion2){ calificacion = 'A';
else
//bloque de sentencias 2
calificacion = 'S';
else{
//bloque de sentencias
}
Estructuras Selectivas
Prdida del else
if (sexo == F) {
if (edad > 60)
jubiladas++;
}
else
caballeros++;

el else est asociado al if inmediatamente


anterior
Estructuras Selectivas
Selectiva Mltiple
switch (expresin){
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 Repetitivas
Mientras
while (condicin){
// bloque de sentencias
}
raiz = 1;
while ((raiz * raiz) < x){
x)
System.out.println(raiz:
raiz++; +raiz);
raiz++;
}
Estructuras Repetitivas
Hacer mientras
do{
// bloque de sentencias
}while (condicin);

raiz = 0;
do{
raiz++;
}while((raiz * raiz) < x));
Estructuras Repetitivas
Desde o Para
for ( iniciaVarControl; condicin; incremento ){
// bloque de sentencias
}

for( for(
int i =int
suma = 1,0;multiplo3
for(float
boolean = 1;
iencontrado
r==100;
0.0; iri>=
<==5;
<= 5; i++,
i -=multiplo3
15.0;
false;r5+= += 2 )
) 0.1)
for(int
System.out.println("Valor:
i = 1; i <= n; i++) suma
for( ; !encontrado;
System.out.println("Valor:
" +=
+ i);
){ r)
i;;
" + multiplo3) ;
// bloque de sentencias
}
Mtodos
Mtodo con resultado
tipo_a_retornar identificador( lista
double cubo( float x ){
de parametros formales)
{
return x*x*x;
} //bloque de sentencias
return valor_ a_retornar
El valor a retornar ;puede
} Las variables locales no se
ser un valor de tipo
inicializan por defecto
primitivo o una referencia
Mtodos
Mtodo tipo void
void identificador( lista de
void mensaje(){
inicializa( float r, float l ){
radio = r; parametros
System.out.println(" formales)
Hola amigos");
{
} longitud = l;
}
// bloque de sentencias
}
Llamada a un mtodo
x += cubo(3);
System.out.println(cubo(3));
inicializa(2.5, 2);
inicializa(r, l);
mensaje();

En Java el pase de parmetros es por valor


Mtodos
Sobrecarga de mtodos (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)
Declaracin y Creacin
tipo[] nomVector = new tipo[numElementos];
tipo nomVector[] = new tipo[numElementos];

int[] edades =
int edades[] = new
new int[20];
int[20];
String[] ciudades
Date fiestas[] = new
= new String[50];
Date[16];

al crear un arreglo de objetos, Java lo inicializa


Los
en ndices
null, van desde
indicando que el0 arreglo
hasta numElementos-1
an no
contiene objetos
Arreglos Unidimensonales
(Vectores)
Creacin e inicializacin
char vocales [] = {'a', 'e', 'i', 'o', 'u'};

boolean [] respuestas = { true, false, true, true};

long cont[] = {10, 15, 20, 25};


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)
Como parmetros de mtodos
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)
Asignacin 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
(Matrices)
Declaracin y Creacin
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
(Matrices)
Creacin e inicializacin
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
(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
(Matrices)
Como parmetros de mtodos

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
(Matrices)
Asignacin 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 Multidimensionales
El nmero de corchetes requeridos vara de acuerdo a la
dimensin del arreglo.

String [ ][ ][ ] arregloMulti = new String [10][5][3];

Vous aimerez peut-être aussi