Sei sulla pagina 1di 4

En esta clase definimos un auto como un conjunto de atributos (marca,

modelo, color, largo, ancho, alto) y proporcionamos los métodos


necesarios para construir un objeto de este tipo (hay dos constructores,
uno sin atributos y el otro que los recibe como parámetros), operaciones
de escritura (métodos setters) y de lectura (métodos getters). Además,
sobreescribe el método “public String toString()”, que debe devolver una
cadena de texto con los atributos del objeto presentados de forma
legible para el usuario.

Por otra parte tenemos la clase Concesionario.java. Las dos son un claro
ejemplo de una relación de agregación: un concesionario contiene de cero
a N elementos, en este caso, autos.

Esto no significa más que el concesionario (aparte de otros atributos


como nombre, localización, etc. que no he tenido en cuenta) debe
contener una lista de objetos de la clase Auto. En este caso la he
implementado como un ArrayList.

Por supuesto en el constructor, este ArrayList se inicializa y podemos


decir que el concesionario está vacío. Debemos también por lo tanto
incorporar operaciones que permitan añadir/eliminar/consultar autos.
Para que el ejemplo no resulte demasiado extenso, solo he implementado
la operación de añadir (addAuto()) y la de ver todos los autos del
concesionario (showAutos()).

Finalmente, la lógica del programa la he separado de los objetos. En el


archivo Main.java encontraremos el arranque del programa.
Comienza con un bucle que muestra el menú principal y ejecuta la tarea
que en este se seleccione hasta que se dé la señal de terminación.

Main.java:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public static void main(String[] args){


boolean exit=false;
Concesionario concesionario=new Concesionario();
do{
int task=mainMenu();
switch (task){
case 0: exit=true; break;
case 1: concesionario.addAuto(); break;
case 2: concesionario.getAutos(); break;
default: break;
}
System.out.println();
}while (!exit);
}

private static int mainMenu() throws IOException{


// This method returns the number of the task to be performed
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Opciones: \n"
+ "1. Introducir nuevo auto \n"
+ "2. Ver autos \n"
+ "0. Salir \n");
System.out.print("Introducir numero de opcion deseada: ");
return Integer.parseInt(input.readLine());
}
Concesionario.java

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Concesionario {

private ArrayList<Auto> listAuto;

public Concesionario() {
this.listAuto = new ArrayList();
}

public void addAuto() throws IOException{


// This method adds an element to the list
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
Auto newAuto=new Auto();
System.out.print("Brand: ");
newAuto.setBrand(input.readLine());
System.out.print("Model: ");
newAuto.setModel(input.readLine());
System.out.print("Color: ");
newAuto.setColor(input.readLine());
System.out.print("Length (in mm): ");
newAuto.setLength(Integer.parseInt(input.readLine()));
System.out.print("Width (in mm): ");
newAuto.setWidth(Integer.parseInt(input.readLine()));
System.out.print("Height (in mm): ");
newAuto.setHeight(Integer.parseInt(input.readLine()));
listAuto.add(newAuto);
}

public void getAutos(){


for (Auto auto : listAuto){
System.out.println(auto);
}
}

}
Auto.java:

public class Auto {

private String brand="";


private String model="";
private String color="";
private int length=0;
private int width=0;
private int height=0;

public Auto(){
// Empty constructor
}

public Auto(String brand,


String model,
String color,
int length,
int width,
int height){
this.brand=brand;
this.model=model;
this.color=color;
this.length=length;
this.width=width;
this.height=height;
}

// Setters
public void setBrand(String brand){
this.brand=brand;
}

public void setModel(String model){


this.model=model;
}

public void setColor(String color){


this.color=color;
}

public void setLength(int length){


this.length=length;
}

public void setWidth(int width){


this.width=width;
}

public void setHeight(int height){


this.height=height;
}

// Getters

public String getBrand(){


return this.brand;
}

public String getModel(){


return this.model;
}

public String getColor(){


return this.color;
}

public int getLength(){


return this.length;
}

public int getWidth(){


return this.width;
}

public int getHeight(){


return this.height;
}

@Override
public String toString(){
return (this.brand+" "+
this.model+" "+
this.color+" "+
"Dimensions (LxWxH in mm): "+
this.length+"x"+
this.width+"x"+
this.height
);
}

Potrebbero piacerti anche