Solución planteada al ejercicio CU00666B del curso de programación orientada a objetos con lenguaje Java.
Uso 3 clases:
Clase EntradaDeTeclado:
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine (); } //Cierre del método pedirEntrada
public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
public String getPrimeraPalabra () {
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) {
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado; //Caso de que no se detecte ningún espacio devolvemos lo que haya
} //Cierre del método getPrimeraPalabra
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase
Clase ListaCantantesFamosos:
import java.util.ArrayList;
public class ListaCantantesFamosos {
//Esta clase representa una lista de cantantes manejada con la clase ArrayList de Java
private String cantanteDeLaLista;
private ArrayList<String> listadecantantes; //Declaramos un ArrayList que contiene objetos String
public ListaCantantesFamosos() { //Constructor: crea una lista de 3 nombres
listadecantantes = new ArrayList<String>(); //Creamos el objeto de tipo ArrayList
listadecantantes.add("Elton John");
listadecantantes.add("Enya");
listadecantantes.add("Jon Secada");
} //Cierre del constructor
public void addNombre (String valor_nombre) {
listadecantantes.add (valor_nombre);
} //Cierre del método
public String getNombre (int posicion) { //Método
if (posicion >= 0 && posicion < listadecantantes.size() ) {
return listadecantantes.get(posicion); }
else { return "No existe nombre para la posición solicitada";}
} //Cierre del método
public void getAllNombres() { //Método
int j = 0;
for( String cantante : listadecantantes){
System.out.println ((j+1)+ ".- " + cantante );
j++;
}
} //Cierre del método
public int getTamaño () { return listadecantantes.size(); } //Cierre del método
public void removeNombre (int posicion) { //Método
if (posicion >= 0 && posicion < listadecantantes.size() ) {
listadecantantes.remove(posicion); }
else { } //else vacío. No existe nombre para la posición solicitada, no se ejecuta ninguna instrucción
} //Cierre del método removeNombre
} //Cierre de la clase
Clase TestListaCantantesFamosos:
import java.util.ArrayList;
import com.aprenderaprogramar.java.iniciacion.clase65.EntradaDeTeclado;
public class TestListaCantantesFamosos {
public static void main (String [ ] args) {
System.out.println ("Empezamos el programa");
ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
lista1.getAllNombres();
int j = 0;
do{
System.out.println ("Por favor introduzca cantante o Pulse 'x' para salir:");
EntradaDeTeclado entrada = new EntradaDeTeclado();
System.out.println ("Gracias");
if(j >= 1 && entrada.getEntrada().equalsIgnoreCase("x"))
break;
lista1.addNombre (entrada.getEntrada() );
System.out.println ("La lista ha quedado formada por " + lista1.getTamaño() + " elementos");
lista1.getAllNombres();
j++;
}while(true);
} //Cierre del main
}