Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/05/2013, 02:01
Avatar de Fuzzylog
Fuzzylog
 
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 4 meses
Puntos: 188
Respuesta: Capturar datos en una clase y pedirlo con otra (java)

Pero qué es A? Instancias las clases de forma única? Creo que no entiendes bien el concepto de objetos.

ClaseTipoA objA1 = new ClaseTipoA(); // Se crea un objeto a partir de la plantilla ClaseTipoA y se referencia a la variable objA1
ClaseTipoA objA2 = new ClaseTipoA(); // Se crea un objeto a partir de la plantilla ClaseTipoA y se referencia a la variable objA2
objA1.alta(); // Se ejecuta el metodo alta para el objeto referenciado por objA1
// No se ejecuta alta para objA2

ClaseTipoB objB1 = new ClaseTipoB(); // Se crea un objeto a partir de la plantilla ClaseTipoB y se referencia a la variable objB1
Si ahora le pasases algo así
objB1.busqueda(1); // No sabria a que objeto corresponde la busqueda (seguramente a un ClaseTipoA que no esté inicializado)

Por tanto tienes que hacer que objB1 se entere de qué objeto de tipo ClaseTipoA le pasas para que busque.

algo así como objB1.setAlta(objA1); // Y lo referenciaria a una variable alta perteneciente a objB1
objB1.busqueda(1); // Ahora esto buscaria lo que debe

Si hiciesemos
objB1.setAlta(objA2);
objB1.busqueda(1);
No encontraria nada pq en objA2 no hicimos ningun alta


Además, ten cuidado con estas cosas

public void alta(){
System.out.print("Matricula: ");
al[cont]=v.nextInt();
cont++;
}

Cuando cont valga 10, si vuelves a realizar un alta intentará insertar un elemento en una posición no existente del arreglo.

al[10]=v.nextInt();

Con lo cual te saltará un ArrayIndexOutOfBoundsException.

Habría que controlarlo con un

if(cont<10) {
al[cont]=v.nextInt();
cont++;
} else {
System.out.println("Registro lleno");
}

¿Además tampoco tienes garantías que el usuario teclee un int, que pasa si teclea una letra por error? Habria que envolver esto en un bloque try-catch y controlar el error, decir que no has introducido un numero valido y volver a solicitar ingreso de numero.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}