Foros del Web » Programación para mayores de 30 ;) » Java »

Array List Java

Estas en el tema de Array List Java en el foro de Java en Foros del Web. Buenos dias... Mirad, tengo que hacer un programa asi: Se desea realizar una aplicación que simule un taller donde se reparan vehículos. El taller debe ...
  #1 (permalink)  
Antiguo 04/04/2013, 01:46
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Array List Java

Buenos dias... Mirad, tengo que hacer un programa asi:

Se desea realizar una aplicación que simule un taller donde se reparan vehículos. El
taller debe permitir el cálculo de la reparación de un vehículo en base al coste de las
piezas utilizadas y las horas dedicadas a la repar
ación. La aplicación debe tener tres
clases
:
Taller, Vehículo y Pieza:

La clase Pieza representa una pieza del vehículo reparado y contendrá su nombre
(String) y su precio (double).

El Vehículo contendrá la matrícula (String), marca (String), modelo (
String) y
un ArrayList con las piezas que se han arreglado.

La clase Taller tendrá un nombre (String), teléfono (String) y el precio hora
(double). El taller debe tener un método repararVehiculo(
) que recibirá dos
parámetros: un objeto de tipo vehículo y las horas dedicadas a la reparación; a
partir del objeto vehículo sabremos las piezas utilizadas y su precio y con el
coste de la hora debe ser capaz de devolver el importe total de la reparación.
Crear las clases y los métodos necesarios para poder implementar el método
repararVehiculo() y una clase PruebaTaller con método main para poder probarlas.


Bueno... ya tengo casi todo codificado.. pero tengo un problema con el Array List, no se que es lo que hago mal.. Esto es lo que tengo:

Clase PIEZA:
Código:
public class Pieza {
    String nombre;
    double precio;
    
    
    public Pieza(String nombre,double precio){
        
       this.nombre=nombre;
       this.precio=precio;
       
       
    }
    
    public String getNombre(){
        return nombre;
    }
    
    public double getPrecio(){
        return precio;
    }


    
}
Clase TALLER

Código:
public class Taller {
    
    String nombre;
    String telefono;
    double preciohora;
 
    
    public String getNombre(){
        return nombre;
    }
    
    public String getTelefono(){
        return telefono;
    }
    public double getPrecioHora(){
        return preciohora;
    }
    
    public void repararVehiculo(Vehiculo v,int horas){
        
        
        
        
        
        
    }
    
    

    
    
    
    
}
Clase Vehiculo, aqui está el Array LIST

Código:
public class Vehiculo {
    
    String matricula;
    String marca;
    String modelo;
    ArrayList piezas=new ArrayList();
    
    public Vehiculo(String matricula,String marca, String modelo){
        
        this.matricula=matricula;
        this.marca=marca;
        this.modelo=modelo;
       
        
        
    }
    
    public ArrayList getPiezas(){
        
        return piezas;
    }
    
    public void añadirPiezas(Pieza p){
        piezas.add(piezas);
    }
    
    

    public String getMarca() {
        return marca;
    }
    
    public String getMatricula(){
        return matricula;
    }
 
    public String getModelo(){
        return modelo;
    }
    
    
}
Y finalmente: Clase Prueba TALLER
Código:
public class PruebaTaller {
    
    
   public static void main(String[] args) {
       
       
    Pieza pieza1=new Pieza("Aleta",500);
    Pieza pieza2=new Pieza("Correa distribucion",462.00);
    Pieza pieza3=new Pieza("Motor",1800.32);
    
    Vehiculo v1=new Vehiculo("1111-MFC","Renault","Megane");
    Vehiculo v2=new Vehiculo("2222-MFC","Audi","A6");
    Vehiculo v3=new Vehiculo("3333-MFC","BMW","320");
    
    v1.añadirPiezas(pieza3);
    v2.añadirPiezas(pieza2);
    v2.añadirPiezas(pieza3);
    
    
    
    System.out.println(v1.getPiezas());
    }
}
En esta Linea
System.out.println(v1.getPiezas());
es donde tengo el problema ya que parece que me imprime la dirreccion de memoria o algo, me sale una cosa rara.

Alguna ayuda, muchas gracias.
  #2 (permalink)  
Antiguo 04/04/2013, 03:22
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Array List Java

Si usas java 5 o 6 deberías utilizar

List<Pieza> piezas=new ArrayList<Pieza>();

Es una forma de indicar que el arraylist está formado por objetos de la clase Pieza en vez de por Objetos genéricos. De no hacerlo de esta forma al obtener un elemento del arraylist tendrías que hacer un cast a la clase a la que pertenece.

En cuanto a tu problema...

System.out.println(v1.getPiezas());

Estás intentando escribir por consola un ArrayList, cuando lo que le debes pasar es un String. Es decir primero tendrías que volcar las descripciones de todas las piezas del vehículo en un String separadas por comas y luego imprimir el valor de ese String.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 04/04/2013, 03:36
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Array List Java

Cita:
Iniciado por Fuzzylog Ver Mensaje
Si usas java 5 o 6 deberías utilizar

List<Pieza> piezas=new ArrayList<Pieza>();

Es una forma de indicar que el arraylist está formado por objetos de la clase Pieza en vez de por Objetos genéricos. De no hacerlo de esta forma al obtener un elemento del arraylist tendrías que hacer un cast a la clase a la que pertenece.

En cuanto a tu problema...

System.out.println(v1.getPiezas());

Estás intentando escribir por consola un ArrayList, cuando lo que le debes pasar es un String. Es decir primero tendrías que volcar las descripciones de todas las piezas del vehículo en un String separadas por comas y luego imprimir el valor de ese String.
Muchas Gracias!
No uso ninguna de esas versiones.

Entiendo la solucion que me das.. pero no se hacerla..:D
Con un v1.getPiezas().toString() no me vale..
  #4 (permalink)  
Antiguo 04/04/2013, 03:41
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Array List Java

String misPiezas = "";
List piezasObtenidas = v1.getPiezas();
if (piezasObtenidas != null) {
for (int i = 0; i < piezasObtenidas.size(); i++) {
Pieza pieza = (Pieza) piezasObtenidas.get(i);
if (i<piezasObtenidas.size()-1) {
misPiezas += pieza.getNombre() + ", ";
} else {
misPiezas += pieza.getNombre() + "."
}
}
}
System.out.println(misPiezas);
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 04/04/2013, 05:18
 
Fecha de Ingreso: marzo-2013
Ubicación: Alcalá de Henares
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Array List Java

Muchas Gracias.

Etiquetas: clase, list, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:22.