Problema con clases

Iniciado por Lain0x, 24 Noviembre 2011, 16:19 PM

0 Miembros y 1 Visitante están viendo este tema.

Lain0x

Hola estoy intentando resolver un problema que viene con indicaciones no muy precisas.
Es el siguiente:

Desarrollar clase motor. Esta clase la hice exactamente como se pide, así que no hay problemas:


import java.io.*;
public class Motor
{
    private int litros, cv;
   
    public Motor(int cv)
    {
        this.cv = cv;
        litros = 0;
    }
   
    public int getLitros()
    {
        return litros;
    }
   
    public int getCv()
    {
        return cv;
    }
   
    public void setLitros(int lt)
    {
        litros = lt;
    }
   
}


La siguiente es la clase Auto, me pide 3 atributos: uno tipo Motor, 2 String (marca y modelo), y un double que es el precio acumulado de las averías.

Y que esta clase tenga además un método que acumule averías (incrementa el importe gastado en baterías).

La clase Auto me quedó así, aunque no estoy seguro sobre el método acumular averías:

import java.io.*;
public class Auto
{
    private Motor m;
    private String marca, modelo;
    private double precio;
   
    public Auto(String marca, String modelo)
    {
        this.marca = marca;
        this.modelo = modelo;
    }
   
    public Motor getM()
    {
        return m;
    }
   
    public String getMarca()
    {
        return marca;
    }
   
    public String getModelo()
    {
        return modelo;
    }
   
    public double getPrecio()
    {
        return precio;
    }
   
    public void acumularAveria()
    {
        precio++;
    }
}


Y finalmente una clase taller, con 3 atributos: Un string con la avería asociada, y el numero de autos que se ha atendido.

El taller solo puede atender a un auto en cada momento. Se debe controlar esa condición. Como podría hacer eso???

Hay que usar además, un método aceptaAuto que recibe una variable tipo Auto y avería asociada. El taller solo atiende a un auto en cada momento. Si se está atendiendo uno, devuelve false. Por lo que sería un método boolean.

Y además un método devuelveAuto que deja el taller en estado de aceptar un nuevo auto.

Clase taller:

import java.io.*;
public class Taller
{
    private Auto a;
    private String averia;
    private int numero;
   
    public boolean aceptarAuto(Auto a, String averia)
    {
    }
   
   
}


No comprendo como aplicarlo.


Lain0x

Cita de: Lain0x en 24 Noviembre 2011, 16:19 PM
Hola estoy intentando resolver un problema que viene con indicaciones no muy precisas.
Es el siguiente:

Desarrollar clase motor. Esta clase la hice exactamente como se pide, así que no hay problemas:


import java.io.*;
public class Motor
{
    private int litros, cv;
   
    public Motor(int cv)
    {
        this.cv = cv;
        litros = 0;
    }
   
    public int getLitros()
    {
        return litros;
    }
   
    public int getCv()
    {
        return cv;
    }
   
    public void setLitros(int lt)
    {
        litros = lt;
    }
   
}


La siguiente es la clase Auto, me pide 3 atributos: uno tipo Motor, 2 String (marca y modelo), y un double que es el precio acumulado de las averías.

Y que esta clase tenga además un método que acumule averías (incrementa el importe gastado en baterías).

La clase Auto me quedó así, aunque no estoy seguro sobre el método acumular averías:

import java.io.*;
public class Auto
{
    private Motor m;
    private String marca, modelo;
    private double precio;
   
    public Auto(String marca, String modelo)
    {
        this.marca = marca;
        this.modelo = modelo;
    }
   
    public Motor getM()
    {
        return m;
    }
   
    public String getMarca()
    {
        return marca;
    }
   
    public String getModelo()
    {
        return modelo;
    }
   
    public double getPrecio()
    {
        return precio;
    }
   
    public void acumularAveria()
    {
        precio++;
    }
}


Y finalmente una clase taller, con 3 atributos: Un string con la avería asociada, y el numero de autos que se ha atendido.

El taller solo puede atender a un auto en cada momento. Se debe controlar esa condición. Como podría hacer eso???

Hay que usar además, un método aceptaAuto que recibe una variable tipo Auto y avería asociada. El taller solo atiende a un auto en cada momento. Si se está atendiendo uno, devuelve false. Por lo que sería un método boolean.

Y además un método devuelveAuto que deja el taller en estado de aceptar un nuevo auto.

Clase taller:

import java.io.*;
public class Taller
{
    private Auto a;
    private String averia;
    private int numero;
   
    public boolean aceptarAuto(Auto a, String averia)
    {
    }
   
   
}


No comprendo como hacer eso.



Lain0x

El método aceptaAuto me quedó así:

public boolean aceptarAuto(Auto a, String averia)
    {
        this.a = a;
        this.averia = averia;
        numero = 1;
        return false;
    }

RyogiShiki

#3
CitarAdvertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Puedes crear un atributo booleano para indicar si hay un carro siendo atendido:
Código (java) [Seleccionar]

import java.io.*;
public class Taller
{
   private Auto a;
   private String averia;
   private int numero;
   private boolean reparandoAuto;
   
   public void aceptarAuto(Auto a, String averia)
   {
        this.reparandoAuto = true;
   }

   public boolean seEstaReparandoUnAuto()
   {
        return this.reparandoAuto;
   }

   public void reparacionAutoFinalizada()
   {
        this.reparandoAuto = false;
   }
}


Saludos


Lain0x

Cita de: RyogiShiki en 24 Noviembre 2011, 16:35 PM
Puedes crear un atributo booleano para indicar si hay un carro siendo atendido:
Código (java) [Seleccionar]

import java.io.*;
public class Taller
{
   private Auto a;
   private String averia;
   private int numero;
   private boolean reparandoAuto;
   
   public boolean aceptarAuto(Auto a, String averia)
   {
        this.reparandoAuto = true;
   }

   public boolean seEstaReparandoUnAuto()
   {
        return this.reparandoAuto;
   }

   public boolean reparacionAutoFinalizada()
   {
        this.reparandoAuto = false;
   }
}


Saludos

Es que si está reparando el auto, la variable boolean es False.

Hm creo que si no veo otra opción, tendré que hacer el set. Es que que no se me pide hacer un set en la clase Taller, eso es lo extraño. Osea todo se hace en un sólo método.

Lain0x

Y otra cosa, si me pide que ingrese como parámetro Auto a, y String averia es por algo. Tu no los estás usando.