Autor Tema: Java ejemplo pedir texto por consola ejercicio resuelto ArrayList CU00665B  (Leído 3422 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
HOLA, aqui el desarrollo del ejercicio

clase ListaCantantesFamosos
Código: [Seleccionar]
package ejemplo;

import java.util.ArrayList;
import java.util.Scanner;

public class ListaCantantesFamosos {
   
    ArrayList <String> nombreCantantes;
    String shakira = "Shakira", chayane = "Chayane", mark = "Mark", nuevo = "";
    Scanner solicitud;
   
    public ListaCantantesFamosos (){//Metodo constructor
        nombreCantantes = new ArrayList<>();       
        nombreCantantes.add(mark);
        nombreCantantes.add(shakira);
        nombreCantantes.add(chayane);
    }
   
    //ingresamos los nuevos cantantes por teclado
    public void ingresarCantantes(){
        solicitud = new Scanner(System.in);
        nuevo = solicitud.nextLine();
    }
    //agregamos los cantantes a la lista
    public void agregarCantantes(String nombre){
        nombreCantantes.add(nombre);
    }
   
    //retorna los valores ingresados por teclado
    public String recibirNombres(){
        return nuevo;
    }
    //muestra los valores agregados a la lista
    public void muestraCantantes (){
        for(int i = 0; i < nombreCantantes.size(); i++){
            System.out.println("la nueva lista es: "+nombreCantantes.get(i));
        }
    }
}


clase testCantantesFamosos

Código: [Seleccionar]
package ejemplo;

public class TestLista {
   
    public TestLista(){
       
    }
   
    public static void main (String [] Argumentos){
        ListaCantantesFamosos listaCantantesFamosos = new ListaCantantesFamosos();
        System.out.println("La lista de cantantes es es"+listaCantantesFamosos.nombreCantantes);
       
        for(int i = 0; i <2; i++){
        System.out.println("ingrese los nombres ");
        listaCantantesFamosos.ingresarCantantes();
        listaCantantesFamosos.agregarCantantes(listaCantantesFamosos.recibirNombres());
        }
       
        listaCantantesFamosos.muestraCantantes();
    }
   
}

« Última modificación: 22 de Junio 2015, 22:43 por Alex Rodríguez »
Ronald Mosquera Mancilla

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:EJERCICIO CU00665B REALIZADO
« Respuesta #1 en: 22 de Junio 2015, 22:43 »
Hola ronal, hay un detalle que debes tener en cuenta.

Lo que declaras después de public class son atributos de clase:

public class ListaCantantesFamosos {
   
    ArrayList <String> nombreCantantes;
    String shakira = "Shakira", chayane = "Chayane", mark = "Mark", nuevo = "";
    Scanner solicitud;



Eso significa que todos los objetos que se creen con new llevarán esos atributos. Pero tiene poco sentido que todos los objetos tengan como atributo shakira = "shakira"

Por ello será preferible dejar como atributo aquello que es necesario para representar la clase: la clase representa una lista de nombres de cantantes y por ello el único atributo que necesita es ArrayList <String> nombreCantantes;

Los otros valores que has declarado como atributos debes trasladarlos como variables locales de métodos o constructores, de esa forma no aparecen como atributos de clase.

Podríamos escribir esto:

Código: [Seleccionar]
    public ListaCantantesFamosos (){//Metodo constructor
        String shakira = "Shakira", chayane = "Chayane", mark = "Mark",
        nombreCantantes = new ArrayList<>();       
        nombreCantantes.add(mark);
        nombreCantantes.add(shakira);
        nombreCantantes.add(chayane);
    }

Pero es preferible no crear variables sino usar directamente los String si no queremos las variables para otra cosa.

Código: [Seleccionar]
    public ListaCantantesFamosos (){//Metodo constructor
        nombreCantantes = new ArrayList<>();       
        nombreCantantes.add("Mark");
        nombreCantantes.add("Shakira");
        nombreCantantes.add("Chayane");
    }

El caso de solicitud lo resolveríamos así:

Código: [Seleccionar]
    public void ingresarCantantes(){
        Scanner solicitud = new Scanner(System.in);
        nuevo = solicitud.nextLine();
    }

El atributo nuevo también se puede eliminar. Para ello tendrías que hacer la adición del nombre a la lista en el mismo momento en que se recibe el nombre por teclado. Puedes fijarte en este ejercicio resuelto como referencia: https://www.aprenderaprogramar.com/foros/index.php?topic=1549



Saludos

 

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".