Autor Tema: Java ejercicios resueltos código clase Cliente y Test valor inicial null arreglo  (Leído 3251 veces)

rob25

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
Buenas tengo un ejercicio en el que tengo una clase llamada Cliente con dni, nombre y especialidad que son privados. Me pide que cree un main con un array de 10 clientes en el que tendrá un menu(switch case) con varias opciones.

Si pulso 1, Se creará un nuevo objeto Cliente y lo añadirá a la lista en la última posición libre. Hay que comprobar que haya un hueco libre antes de añadirlo.

No entiendo cómo puedo crear un nuevo objeto cliente y que se añada al codigo de por si o no si no lo entiendo.

Gracias por la ayuda.

 
« Última modificación: 29 de Septiembre 2020, 19:39 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Duda Java Objetos
« Respuesta #1 en: 30 de Abril 2020, 18:24 »
A ver, tenemos una clase Cliente, con sus atributos, getters y setters.

Código: [Seleccionar]
public class Cliente {

private String dni;
private String nombre;
private String especialidad;

public Cliente(String dni, String nombre, String especialidad) {
this.dni = dni;
this.nombre = nombre;
this.especialidad = especialidad;
}

public String getDni() {
return dni;
}

public void setDni(String dni) {
this.dni = dni;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getEspecialidad() {
return especialidad;
}

public void setEspecialidad(String especialidad) {
this.especialidad = especialidad;
}

}

Bien, luego en una clase main declaramos un array de clase Cliente con 10 elementos.

Al inicializar este array, sus 10 elementos tienen valor null.
Entonces, en esa opción 1 de crear nuevo Cliente, lo que hay que hacer es:
- Pedir datos para crear Cliente: dni, nombre y especialidad
- Con esos datos, creamos un nuevo objeto Cliente.
- Buscar un hueco libre en el array. ¿Cómo?
Pues con un bucle lo recorremos y buscamos una posición que tenga valor null.
Si encontramos dicha posición, guardamos su indice y luego lo usamos para meter ahí el nuevo Cliente que hemos creado.
Si no se encuentra ninguna posición null, es que el array ya está lleno, así que no se puede guardar el nuevo Cliente.

El código podría ser como este. Pruébalo y verás que cada nuevo Cliente se va guardando en la posición 0, luego, 1, 2, 3... hasta la posición 9.

A partir de ahí, el array está lleno y ya no se pueden guardar más Clientes.

Código: [Seleccionar]
public class TestCliente {

private static Scanner teclado = new Scanner(System.in);
private static Cliente[] clientes = new Cliente[10];

public static void main(String[] args) {

int opc = 0;
do {
System.out.println("\n\t\tMENU OPCIONES");
System.out.println("[1] -- Nuevo Cliente");
System.out.println("[9] -- SALIR");
System.out.print("Elija opcion: ");
opc = Integer.parseInt(teclado.nextLine());

switch(opc) {
case 1:
nuevoCliente();
break;
case 9:
System.out.println("\nFIN DE PROGRAMA");
break;
default:
System.out.println("\nOpción inválida.");
}

}while(opc != 9);

}

private static void nuevoCliente() {
//Pedimos datos para crear un CLiente
System.out.print("\nDNI: ");
String dni = teclado.nextLine();
System.out.print("Nombre: ");
String nombre = teclado.nextLine();
System.out.print("Especialidad: ");
String especi = teclado.nextLine();
//Creamos Cliente
Cliente nuevoCliente = new Cliente(dni, nombre, especi);
//Buscamos posicion libre en el array
int huecoLibre = -1;
for (int i = 0; i < clientes.length && huecoLibre == -1; i++) {
if (clientes[i] == null) //Hemos encontrado hueco libre
huecoLibre = i; //Guardamos posicion libre, esto ademas pone fin al bucle
}
//Comprobamos si hemos encontrado hueco libre
if (huecoLibre == -1)
System.out.println("No hay espacio disponible para guardar el nuevo Cliente.");
else {
clientes[huecoLibre] = nuevoCliente;
System.out.println("Nuevo Cliente se ha guardado en la posición: " + huecoLibre);
}
}

}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".