3
« en: 20 de Enero 2015, 23:43 »
Ok, siguiendo tus consejos he terminado el codigo quedando asi:
package beans;
import java.util.Scanner;
import java.util.Objects;
/**
*
* @author DcdacD
*/
public final class DatoCoche {
static enum ColorDeCoche {ROJO,VERDE,BLANCO,NEGRO,AMARILLO,AZUL};
static enum TipoDeCoche{UTILITARIO,FAMILIAR,DEPORTIVO};
static enum TipoDeSeguro {TODO_RIESGO,TERCEROS,TERCEROS_AMPLIADOS};
private String modelo;
ColorDeCoche color;
private int esmetalizada; //Como hacerlo con boolean ??
private String matricula;
TipoDeCoche tipo;
private int anyoFabricación;
TipoDeSeguro seguro;
public DatoCoche() {
Scanner car = new Scanner (System.in);
System.out.println("Introduzca el modelo del coche:");
modelo = car.next();
//do{
System.out.println("Eliga el color del coche con el nº asociado:");
System.out.println("\t0-Rojo, 1-Verde, 2-Blanco, 3-Negro, 4-Amarillo, 5-Azul.");
String msg = "Color almacenado.",
valor = car.next();
switch (valor){
case "0": setColor(ColorDeCoche.ROJO);break;
case "1": setColor(ColorDeCoche.VERDE);break;
case "2": setColor(ColorDeCoche.BLANCO);break;
case "3": setColor(ColorDeCoche.NEGRO);break;
case "4": setColor(ColorDeCoche.AMARILLO);break;
case "5": setColor(ColorDeCoche.AZUL);break;
default:msg ="Color incorrecto.";
}System.out.println(msg);
//}while (xxx) Si introduzco el do no se que valores indicarle a while para que se cumpla
do{ //No se como hacer esto siendo esmetalizada un boolean??
System.out.println("¿ Desea pintura metalizada (1 Si - 2 No) ? ");
esmetalizada=car.nextInt();
if (esmetalizada==1){
System.out.println("Elegida Pintura Metalizada.");
}else if (esmetalizada==2){
System.out.println("Elegida Pintura Normal.");
}
}while (esmetalizada !=1 && esmetalizada !=2);
System.out.println("Indique la matricula del coche:");
matricula=car.next();
System.out.println("Elija el tipo de Coche con el nº asociado: ");
System.out.println("\t0-Utilitario, 1-Familiar, 2-Deportivo.");
String msg1 = "Tipo de coche almacenado.",
valor1 = car.next();
switch(valor1){
case "0":setTipo(TipoDeCoche.UTILITARIO);break;
case "1":setTipo(TipoDeCoche.FAMILIAR);break;
case "2":setTipo(TipoDeCoche.DEPORTIVO);break;
default:msg1="Tipo Incorrecto";
}System.out.println(msg1);
System.out.println("Introduzca el año de fabricación: ");
anyoFabricación = car.nextInt();
System.out.println("Elija el tipo de Seguro: (0-1-2)");
System.out.println("\t0-TODO RIESGO, 1-TERCEROS, 2-TERCEROS_AMPLIADOS");
String msg2="Tipo de Seguro confirmado.";
String valor2;
valor2 = car.next();
switch(valor2){
case "0":setSeguro(TipoDeSeguro.TODO_RIESGO);break;
case "1":setSeguro(TipoDeSeguro.TERCEROS);break;
case "2":setSeguro(TipoDeSeguro.TERCEROS_AMPLIADOS);break;
default:msg2="Tipo Incorrecto.";
}System.out.println(msg2);
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public ColorDeCoche getColor() {
return color;
}
public void setColor(ColorDeCoche color) {
this.color = color;
}
public int getEsmetalizada() {
return esmetalizada;
}
public void setEsmetalizada(int esmetalizada) {
this.esmetalizada = esmetalizada;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public TipoDeCoche getTipo() {
return tipo;
}
public void setTipo(TipoDeCoche tipo) {
this.tipo = tipo;
}
public int getAnyoFabricación() {
return anyoFabricación;
}
public void setAnyoFabricación(int anyoFabricación) {
this.anyoFabricación = anyoFabricación;
}
public TipoDeSeguro getSeguro() {
return seguro;
}
public void setSeguro(TipoDeSeguro seguro) {
this.seguro = seguro;
}
@Override
public int hashCode() {
int hash = 7;
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final DatoCoche other = (DatoCoche) obj;
if (!Objects.equals(this.matricula, other.matricula)) {
return false;
}
return true;
}
@Override
public String toString() {
return "DatoCoche: " + "\nmodelo= " + modelo.toUpperCase() + ", \ncolor= " + color + ", \nTipo Pintura (1 MET, 2 NORM)= " + esmetalizada + ", \nmatricula= " + matricula.toUpperCase() + ", \ntipo Coche=" + tipo + ", \nAño Fabricación=" + anyoFabricación + ", \nTipo Seguro=" + seguro ;
}
}
Veo que sólo tengo una clase de 165 líneas y creo que lo suyo sería tener los especialistas (clases) de: TipoDeCoche, TipoDeSeguro, etc, no ? y así repartir las tareas y no tener una sola clase tan grande. La cosa es que me pierdo y no se si sé confeccionar el código de forma correcta, seríais tan amables de iniciarme.
Gracias.