Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: santicam en 17 de Febrero 2018, 11:54
-
Hola, os dejo mi planteamiento a la solución del ejercicio CU00667B del tutorial pdf de programación básica Java de aprenderaprogramar.
Cualquier observación será bienvenida.
Clase GestionTeclado
import java.util.Scanner;
public class GestionTeclado{
private String texto;
private int numero;
public GestionTeclado(){
texto="";
numero=0;
}
public String pedirTexto(){
Scanner entradaEscaner = new Scanner (System.in);
texto = entradaEscaner.nextLine();
return texto;
}
public int pedirNumero(){
Scanner entradaEscaner = new Scanner (System.in);
numero = entradaEscaner.nextInt();
return numero;
}
public String gettexto(){
return texto;
}
public int getNumero(){
return numero;
}
public int getLongtexto(){
return texto.length();
}
}
Clase CantanteFamoso
public class CantanteFamoso {
private String nombre; //Nombre del cantante famoso
private String disco; //Título del disco más vendido
public CantanteFamoso(){
nombre="";
disco="";
}
public CantanteFamoso(String nombre, String disco){
this.nombre=nombre;
this.disco=disco;
}
public void setNombreCantante(String nombre){
this.nombre=nombre;
}
public void setDisco(String disco){
this.disco=disco;
}
public String getNombreCantante() {
return nombre;
}
public String getDisco(){
return disco;
}
}
Clase ListaCantantesFamosos
import java.util.ArrayList;
import java.util.Iterator;
public class ListaCantantesFamosos {
private ArrayList<CantanteFamoso> listaCantantesFamosos;
public ListaCantantesFamosos() {
listaCantantesFamosos = new ArrayList<CantanteFamoso>();
}
public void addCantanteFamoso(CantanteFamoso nuevoCantanteFamoso) {
listaCantantesFamosos.add(nuevoCantanteFamoso);
}
public void listarTodos() {
Iterator<CantanteFamoso> itCantante = listaCantantesFamosos.iterator();
String nombre;
String disco;
CantanteFamoso tempCantanteFamoso = new CantanteFamoso();
while (itCantante.hasNext()){
tempCantanteFamoso=itCantante.next();
nombre=tempCantanteFamoso.getNombreCantante();
disco=tempCantanteFamoso.getDisco();
System.out.println ("Cantante: "+nombre+" / Disco: "+disco);
}
}
}
Clase TestListaCantantesFamosos
public class TestListaCantantesFamosos {
public static void main (String [ ] args) {
ListaCantantesFamosos lista = new ListaCantantesFamosos();
// Inicializar lista con un par de objetos
lista.addCantanteFamoso(new CantanteFamoso("Madonna", "All I want is you"));
lista.addCantanteFamoso(new CantanteFamoso("Jorge Negrete", "Jalisco"));
GestionTeclado entrada = new GestionTeclado();
int menu = 0;
while (menu != 3){
System.out.println ("\n1 - Listar todos los cantantes");
System.out.println ("2 - Añadir un cantante a la lista");
System.out.println ("3 - Finalizar");
System.out.println ("=================================");
System.out.println ("Teclea opción");
menu=entrada.pedirNumero();
switch (menu){
case 1:
lista.listarTodos();
break;
case 2:
String nombre;
String disco;
System.out.println ("Teclea nombre del cantante");
nombre = entrada.pedirTexto();
System.out.println ("Teclea nombre del disco más vendido");
disco = entrada.pedirTexto();
lista.addCantanteFamoso(new CantanteFamoso(nombre, disco));
break;
case 3:
System.out.println ("Finalizado por el usuario");
break;
default:
System.out.println ("ERROR: opción elegida no válida");
}
}
}
}
¡Gracias!
-
Buenas, todo correcto, buen código. Por comentar algo, en lugar de gettexto preferible getTexto. En cuanto a nombre de la clase, GestionTeclado no es demasiado adecuado porque suena muy bien decir "he creado un objeto gestión de teclado". Preferible GestorTeclado para poder decir "he creado un objeto gestor de teclado". La forma de nombrar clases en Java se comenta en https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698
Salu2