Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.4.agrupación de Objetos PDF
1.4.agrupación de Objetos PDF
Conceptos a tratar
Colecciones
Bucles
Iteradores
Arrays
Proyecto notebook1
Un ejemplo de lista
import java.util.ArrayList;
/**
* Perform any initialization required for the
* notebook.
*/
public Notebook()
{
notes = new ArrayList<String>();
}
...
}
Juan Pavn Mestras
Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos 6
Colecciones
Se especifica
El tipo de la coleccin: ArrayList
El tipo de objetos que contendr: <String>
Caractersticas de la coleccin
Comprobacin de
la validez de los
ndices
public void showNote(int noteNumber)
{
if(noteNumber < 0) {
// This is not a valid note number.
}
else if(noteNumber < numberOfNotes()) {
System.out.println(notes.get(noteNumber));
}
else {
// This is not a valid note number.
}
}
Recupera e imprime la nota
Resumen
Iteracin
Para cada elemento de la coleccin, hacer las cosas del cuerpo del bucle
Ejemplo
/**
* List all notes in the notebook.
*/
public void listNotes()
{
for(String note : notes) {
System.out.println(note);
}
}
Bucle while
Mientras se quiera continuar, hacer las cosas del cuerpo del bucle
/**
* List all notes in the notebook.
*/
public void listNotes()
{
int index = 0;
while(index < notes.size()) {
System.out.println(notes.get(index));
index++;
}
} Incrementa index en 1
for-each:
Ms fcil de escribir
Ms seguro: hay garanta de que acabar
while:
No es necesario procesar toda la coleccin
Se puede utilizar para otras cosas que no sean colecciones
Pero hay que tener ms cuidado: podra darse un bucle
infinito
while (true) {
// esto no acaba nunca
}
int index = 0;
boolean found = false;
while(index < notes.size() && !found) {
String note = notes.get(index);
if(note.contains(searchString)) {
// We don't need to keep looking.
found = true;
}
else {
index++;
}
}
// Either we found it, or we searched the whole
// collection.
Iterator<ElementType> it = myCollection.iterator();
while(it.hasNext()) {
call it.next() to get the next object
do something with that object
}
Resumen
array
Arrays en Java
Declaracin
El tipo de variable que tiene un array se especifica al declararlo,
aadiendo un par de corchetes ([])
int A[]; // A es un array de enteros
int [] A; // igual que antes
int A[10]; // ERROR: no se especifica el tamao en la declaracin
String S[]; // un array de cadenas
String S,T[]; // S es una cadena y T un array de cadenas
String[] S,T; // Ambos, S y T, son arrays de cadenas
Arrays en Java
Array de arrays
int[][] A;
A = new int[2];
for (int i = 0; i < A.length; i++)
A[i] = new int[3];
El proyecto weblog-analyzer
public LogAnalyzer()
{ Creacin de objeto array
hourCounts = new int[24];
reader = new LogfileReader();
}
...
}
El array hourCounts
El bucle for
inicializacin;
while(condicin) {
sentencias a repetir
accin posterior
}
int hour = 0;
while(hour < hourCounts.length) {
System.out.println(hour + ": " + hourCounts[hour]);
hour++;
}
Resumen
while (expresin_booleana)
instruccin
do
instruccin
while (expresin_booleana)
for (instruccion_inicializacin;
expresin_booleana;
instruccin_incremento)
instruccin
Los paquetes:
Definen contextos de denominacin
Para evitar colisin de nombres
Sirven para definir bibliotecas de clases e interfaces
Reutilizacin: no volver a inventar la rueda
Permiten organizar el cdigo de una gran aplicacin
Las clases e interfaces relacionadas se declaran en el mismo
paquete
Ayuda a encontrar dnde estn clases e interfaces
Permite restringir el acceso a clases y operaciones de un
paquete
Mayor seguridad del cdigo
Paquetes
Ejemplo: java.lang.System.out
Es la variable out,
de la clase System,
del paquete lang,
del paquete java
dominio.empresa.departamento.proyecto
Ejemplo: es.ucm.sip.jpavon.cursoJava
Paquetes
Paquetes
import
No es necesario para el paquete java.lang
Siempre se asume: import java.lang.*
Paquetes
Ejemplo
package ucm.sip.juan.curso.java;
import java.util.Date;
La clase ImprimeFecha est declarada
dentro del paquete ucm.sip.juan.curso.java
class ImprimeFecha {
public static void main (String[] args) {
Date ahora = new Date();
System.out.println(ahora);
}
}