Sei sulla pagina 1di 7

Programacin Avanzada para Sistemas

de Telecomunicacin

Arrays
Juan Carlos Cruellas
cruellas@ac.upc.es

Departamento
Arquitectura
Computadores

J.C. Cruellas

Grupo de Aplicaciones Telemticas

U PC

Objetos y clases
Introduccin.
Vectores de datos primitivos.
Vectores de objetos.

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Introduccin
En Java los arrays son tipos predefinidos por el propio lenguaje
que contienen como datos:
La secuencia de valores de tipo primitivo o de referencias a objetos
Un dato protegido que informa de la cantidad de elementos que
puede contener el array (length).

La declaracin de una variable como un array simplemente


crea una referencia que apunta a null.
Para crear un array propiamente dicho HAY QUE HACER USO
DEL OPERADOR new.
Cuando se pasa un array como argumento de una funcin, se
pasa su direccin.
Departamento
Arquitectura
Computadores

J.C. Cruellas

Grupo de Aplicaciones Telemticas

U PC

Introduccin: las clases Array


Cuando se usa el operador new para crear un array
de, digamos 5 posiciones:
Si el vector es de datos int u otro tipo primitivo, se reserva
espacio para guardar cinco valores de ese tipo primitivo.
Si el vector es un vector de objetos, se reserva espacio para
guardar cinco REFERENCIAS (punteros) a objetos de la
clase en cuestin. Es tarea del propio programa crear los
cinco objetos (con nuevas invocaciones al operador new y el
correspondiente constructor) y asignar las referencias a las
posiciones del vector.

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Vectores de datos primitivos


Declaracin vector de datos int.
protected int [] vectInt ;

vectInt

Creacin del vector e inicializacin por defecto.


vectInt = new int[4] ;

vectInt

Creacin e inicializacin simultneas.

0
0
0
0

protected int [] vectInt = {1,2,3,4} ;


Departamento
Arquitectura
Computadores

J.C. Cruellas

Grupo de Aplicaciones Telemticas

U PC

Vectores de datos primitivos


Todo array posee un dato length que indica el nmero
de elementos que puede llegar a contener un array
(dimensin). Es un dato pblico que, sin embargo NO
puede ser modificado.
Puede escribirse vectInt.length all donde pueda
accederse a vectInt.
Cuando se intenta acceder a una posicin inexistente
de un array, la mquina virtual de Java genera y
arroja una excepcin OutOfBoundsException.

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Vectores de objetos
Declaracin vector de objetos
protected Casilla [] tablero ;

tablero

Creacin del vector e inicializacin por defecto.


tablero = new Casilla[4] ;

Departamento
Arquitectura
Computadores

tablero

Grupo de Aplicaciones Telemticas

J.C. Cruellas

U PC

Vectores de objetos
Creacin de objetos y asignacin a posiciones de array

tablero[0]
tablero[1]
tablero[2]
tablero[3]

=
=
=
=

new
new
new
new

Casilla();
Casilla();
Casilla();
Casilla();
casilla

tablero
casilla

casilla

casilla

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Vectores de objetos
Declaracin vector bidimensional de objetos
protected Casilla [][] tablero ;

tablero

Creacin directa de matriz a referencias a objetos.


tablero = new Casilla[4][4] ;
tablero

Departamento
Arquitectura
Computadores

J.C. Cruellas

Grupo de Aplicaciones Telemticas

U PC

Vectores de objetos
Creacin de objetos y asignacin a posiciones de matriz

tablero[0][0] = new Casilla();

casilla
tablero

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Vectores de objetos
Creacin por pasos de matriz a referencias de
objetos.
Paso 1: crear referencias a filas

int nfilas ;
nfilas = 4 ;
tablero = new Casilla[nfilas][] ;
tablero

Departamento
Arquitectura
Computadores

J.C. Cruellas

Grupo de Aplicaciones Telemticas

U PC

Vectores de objetos
Paso 2: para cada fila crear referencias de las columnas

ncol = 4 ;
for(int i=0;i<4;j++){
tablero[i] = new Casilla[ncol] ;
}
tablero

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Vectores de objetos
Creacin de objetos y asignacin a posiciones de matriz

tablero[0][0] = new Casilla();

casilla
tablero

Departamento
Arquitectura
Computadores
U PC

J.C. Cruellas

Grupo de Aplicaciones Telemticas

Potrebbero piacerti anche