Você está na página 1de 9

Resumen Lenguaje Java

Mtodos (Subprogramas)
Tipos de Mtodos: con resultado y tipo void
Definicin
1. Mtodo con resultado, retorna un solo valor, equivalente a los subprogramas tipo funcin
Forma general

tipo_de_dato_a_retornar identificador (lista_de_parmetros_formales){


//instrucciones
return valor_a_retornar;
}

donde lista_de_parmetros_formales es una lista de declaracin de variables separadas


por comas.
Ejemplo
float area(float b, float h){

float cubo(float x){

float valor;
valor = b*h;

return x*x*x;
}

return valor;
}

2. Mtodo tipo void


Forma general
void identificador (lista_de_parmetros_formales){
//instrucciones
}
Ejemplo
void mensaje(String m){
System.out.println(m);
}

Llamada
identificador (lista_de_parmetros_actuales);
donde lista_de_parmetros_actuales es una lista de variables separadas por comas. Los
parmetros actuales deben coincidir en nmero y tipo con los parmetros formales
Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Ejemplos
float y = 15, x = 8;
float c = area(y, x); // llamada al mtodo area

mensaje(hola mundo); // llamada al mtodo mensaje

Sobrecarga de mtodos (polimorfismo en la sobrecarga)


Se habla de sobrecarga de mtodos c u a n d o s e u t i l i z a e l m i s m o n o m b r e p a r a v a r i o s

m t o d o s d e u n a m i s m a c l a s e , lo cual esta permitido siempre y cuando l o s m t o d o s


t e n g a n d i f e r e n t e n m e r o o t i p o s d e p a r m e t r o s . Por ejemplo en la clase Math
existen cuatro mtodos abs para calcular el valor absoluto de un nmero.

Arreglos
En Java l o s n d i c e s s o n v a l o r e s e n t e r o s c o m p r e n d i d o s e n t r e 0 y l m i t e - 1 ;
siendo

lmite

el

nmero

de

elementos

del

a r r e g l o . En Java, un arreglo es,

bsicamente, un objeto que apunta a un conjunto de otros objetos o tipos de datos primitivos. La

nica diferencia entre los arreglos y los objetos es que existe una sintaxis especial para hacer que

los arreglos se comporten como los arreglos de otros lenguajes. Sin embargo, a diferencia de C y
C++, en Java los arreglos no pueden cambiar de tamao, ni se puede hacer un acceso fuera de los
lmites de un arreglo.

Arreglos Unidimensionales (Vectores)


a

cc

a[0]

a[1]

a[2]

a[3]

a[4]

Figura 1. Vector de 5 elementos


Declaracin
En Java existen dos formas de declarar vectores.
En la primera se colocan los corchetes en el

En la segunda forma, los corchetes se colocan

int a[];

int[] a;

nombre de la variable, por ejemplo:

en el tipo de dato del vector, por ejemplo:

El nmero de elementos del vector no forma parte de la declaracin, sino que se define al crearlo.

Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Creacin
Los vectores se crean en memoria por medio de la palabra clave new.
Forma general:

Ejemplo:

nombreVector = new tipo[nmero de elementos];

a = new int[5];

Declaracin y creacin en un solo paso


Java permite la declaracin y creacin de un vector en una sola lnea de cdigo.
Forma general
tipo nombreVector[] = new tipo[nmero de elementos];
tipo []nombreVector = new tipo[nmero de elementos];

Observar que el nmero de elementos solo se coloca con el new.


Ejemplos
int edades[] = new int [20]; // declara y crea un vector edades usando la primera forma
int[] edades = new int [20]; // declara y crea un vector edades usando la segunda forma
Creacin e inicializacin
Java permite inicializar el arreglo al momento de crearlo.
Forma general
tipo nombreVector[] = {lista de valores de tipo, separados con comas};
tipo[] nombreVector = {lista de valores de tipo, separados con comas};
Ejemplos
char vocales [] = {'a', 'e', 'i', 'o', 'u'};
boolean[] respuestas = { true, false, true, true, false };
String ciudades[] = {Maracay, Valencia, Caracas, Maracaybo};
float x[] = {12.5, 10.8, 20.4};
int p[] = {1, 2, 3, 4, 5};
La longitud del arreglo (nmero de elementos) se determina automticamente a partir del nmero
de valores existentes entre { }

Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Acceso a los elementos


Forma general
nombreVector[indice]
Ejemplo
p[i]=i+1;

Longitud fsica de un vector


En Java los arreglos son objetos. Adicionalmente al conjunto de datos que almacenan tienen un
campo dato denominado length, que almacena el nmero de elementos del arreglo. El acceso a

este campo es de la forma: nombreVector.length, por ejemplo, para determinar el nmero de

elementos del vector p:

int numeroElementos = p.length;


for (int i = 0; i < p.length; i++) p[i]= i+1;

Asignacin de un vector a otro vector


En Java el nombre del arreglo es una referencia a la estructura de datos. Por ejemplo:
p

ccc

p[0]

p[1]

p[2]

p[3]

p[4]

length

Las instrucciones:
int x[];
x = p;
Tienen el efecto de asignar el valor de la referencia p a la referencia x, de tal modo que tanto x

como p referencian el mismo arreglo.

Arreglos Bidimensionales (Matrices)


Declaracin
En Java existen dos formas de declarar matrices.
En la primera se colocan los corchetes en el

En la segunda forma, los corchetes se colocan

int a[][];

int[][] a;

nombre de la variable, por ejemplo:

en el tipo de dato de la matriz, por ejemplo:

El nmero de elementos del arreglo no forma parte de la declaracin, sino que se define al crearlo.
Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Creacin
Los arreglos se crean en memoria por medio de la palabra clave new.
Forma general
nombreMatriz = new tipo[nmero de filas][nmero de columnas];
Ejemplo
a = new int[5][6]; // crea una matriz de 5 filas x 6 columnas de elementos int

Declaracin y creacin en un solo paso


Forma general
tipo nombreMatriz[][] = new tipo[nmero de filas][nmero de columnas];
tipo[][] nombreMatriz = new tipo[nmero de filas][nmero de columnas];
Observar que el nmero de elementos solo se coloca con el new.
Ejemplos
// declara y crea una matriz ventas usando la primera forma
int ventas[][] = new int [20][12];
// declara y crea una matriz ventas usando la segunda forma
int[][] ventas = new int [20][12];
Creacin e inicializacin
Java permite inicializar la matriz al momento de crearla.
Forma general
tipo nombreMatriz[][] = {{lista_valores_de_fila_0}, {lista_valores_fila 1},..};
tipo[][] nombreMatriz = {{lista_valores_de_fila_0}, {lista_valores_fila 1},..};
Ejemplo
// Crea e inicializa una matriz de 4 filas por 3 columnas de elementos tipo int
int mat[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};
El nmero de elementos se determina automticamente a partir del nmero de valores existentes
entre { }

Acceso a los elementos


Forma general
nombreMatriz[indice_fila][indice_columna]
Ejemplo
ventas[0][0] = 1; // asigna un valor 1 al elemento de la fila 0 columna 0
Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Longitud fsica
Nmero de filas de una matriz nombreMatriz.length
Nmero de columnas de una fila nombreMatriz[indice_fila].length
Ejemplo
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] = (int)(Math.random()*100);

Asignacin de una matriz a otra matriz


En Java el nombre del arreglo es una referencia a la estructura de datos. Por ejemplo:
p

p[0]

p[0][0]

P[0][1]

P[0][2]

Fila 0

p[1]

p[1][0]

p[1][1]

P[1][2]

Fila 1

Columna 0

Columna 1

Columna 2

Las instrucciones:
int x[][];
x = p;
Tienen el efecto de asignar el valor de la referencia p a la referencia x, de tal modo que tanto x

como p referencian la misma matriz.

p[0] referencia a los elementos de la fila 0, p[1] referencia a los elementos de la fila 1

Arreglos como parmetros formales de mtodos


En la definicin del mtodo, de forma similar a la declaracin de arreglos, por ejemplo:
void escribir(int x[]){
//instrucciones
}
void transpuesta (float a[][]){
// instrucciones
}

Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

Arreglos como parmetros actuales de mtodos


En la llamada al mtodo, se coloca el nombre del arreglo que se est pasando como parmetro
actual, por ejemplo, para los mtodos escribir y transpuesta, una llamada podra ser:

int edades[] = new int[100];


escribir(edades);
float a[][]= new float[3][4];
transpuesta(a);

Ejercicio de Aplicacin
/*
* ArreglosMetodos.java
*
* Created on 29 de marzo de 2006, 11:50 AM
*/
package CompAvanz12006.Unidad1.metodosArreglos;
/**
* Esta clase permite visualizar la definicin y uso de mtodos static,
* sobrecarga de mtodos,
* as como tambin el manejo de arreglos
* @author mdeabreu
*/
public class ArreglosMetodos {
public ArreglosMetodos() {
}
public static void main(String[] args) {
int n = (int)(Math.random()*10) + 1; //genera un valor entre 1 y 10
System.out.println("n: " + n + "\n");
int vector[] = new int[n];
generar(vector, 10, 100);

// genera un vector de n elementos con


// valores entre 10 y 100

System.out.println("\nVector\n");
escribir(vector);
System.out.println("\npromedio de vector: "+ promedio(vector)+"\n");
float matriz[][] = new float[n][2*n];
generar(matriz,10,100);
//genera una matriz de nx2*n
System.out.println("\nMatriz");
// con valores entre 10 y 100
escribir(matriz);
System.out.println("Fila 0 de Matriz");
escribir(matriz[0]); //trata una fila de una matriz como un vector
int vector2[]= vector; // vector2 referencia los elementos de vector
Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

System.out.println("\nVector\tVector2
elementos de vector");
escribir(vector, vector2);

vector2 referencia los

generar(vector2, 10, 100);


System.out.println("\nVector\tVector2\tse generaron nuevos valores en
vector2");
escribir(vector, vector2);
vector2 = generar(n, 20, 50);

// generar retorna la referencia a un


// nuevo arreglo
// creado por el metodo generar
System.out.println("\nVector\tVector2\tse generaron nuevos valores en
vector2 ahora vector2 no referencia los elementos de vector");
escribir(vector, vector2);
System.out.println("\nSuma de vector con vector\nVector\tSuma\n");
escribir(vector, sumar(vector, vector));
}
/** genera un valor float aleatorio en el rango (a, b) */
public static float aleatorio(float a , float b){
return (float)(Math.random()*(b - a)) + a;
}
/** genera un valor int aleatorio en el rango (a, b) */
public static int aleatorio(int a, int b){
return (int)(Math.random()*(b - a + 1)) + a;
}
/** genera un vector x con valores int aleatorios en el rango (a, b) */
public static void generar(int x[], int a, int b){
for(int i = 0; i < x.length; i++) x[i] = aleatorio(a,b);
}
/** genera un vector x[n] con valores int aleatorios en el rango (a, b)
retorna la referencia al vector generado */
public static int[] generar(int n, int a, int b){
int x[] = new int[n];
for(int i = 0; i < n; i++) x[i] = aleatorio(a,b);
return x;
}
/** escribe todos los elementos del vector x */
public static void escribir(int x[]){
for(int i = 0; i<x.length; i++) System.out.println("[" + i + "]: " +
x[i] );
}
/** escribe todos los elementos del vector x */
public static void escribir(float x[]){
for(int i = 0; i<x.length; i++) System.out.println("[" + i + "]: " +
x[i] );
}
/** escribe todos los elementos de los vectores x e y uno al lado del otro*/
public static void escribir(int x[], int y[]){
for(int i = 0; i<x.length; i++) System.out.println( x[i] + "\t" + y[i]);
Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Lenguaje Java

}
/** calcula el promedio de todos los elementos del vector x */
public static float promedio(int x[]){
float suma = 0 ;
for(int i = 0; i < x.length; i++) suma += x[i];
return suma/x.length;
}
/** retorna en el vector s la suma de los vectores x e y */
public static void sumar(int x[], int y[], int s[]){
for(int i = 0; i< x.length; i++) s[i]=x[i]+y[i];
}
/** retorna la referencia al vector que almacena la suma de los vectores x e
y */
public static int [] sumar(int x[], int y[]){
int s[] = new int [x.length];
for(int i = 0; i< x.length; i++) s[i] = x[i] + y[i];
return s;
}
/** genera una matriz x con valores float aleatorios en el rango (a, b) */
public static void generar(float x[][], int a, int b){
for(int i = 0; i < x.length; i++)
for(int j = 0; j < x[0].length; j++)
x[i][j] = aleatorio(a,b);
}
/** escribe todos los elementos de la matriz x*/
public static void escribir(float x[][]){
for(int i = 0; i<x.length; i++){
for(int j = 0; j < x[0].length; j++)
System.out.print((int)(x[i][j] * 100)/100.0 + "\t");
System.out.println();
}
}
}

Universidad de Carabobo. Facultad de Ingeniera. Departamento de Computacin. Computacin Avanzada. 1-2006.

Você também pode gostar