Autor Tema: Convención o regla de nombres Java clases comienzan con mayúsculas CU00665B  (Leído 6125 veces)

masterdark

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Hola. Aquí esta la solución al ejercicio CU00665B.

clase 1:ListaCantantesFamosos
Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos
{
    private String nombreDeLista;
    private ArrayList<String> listadecantantes;
   
    public ListaCantantesFamosos(String cantantes){
        nombreDeLista = cantantes;
        listadecantantes = new ArrayList<String>();
        listadecantantes.add ("John Lennon");
        listadecantantes.add ("Kurt Cobain");
        listadecantantes.add ("Axl Rose");
    }

    public void addNombre (String valor_nombre) {
        listadecantantes.add (valor_nombre);
    }
    public String getNombre (int posicion) {
       return listadecantantes.get(posicion);
    }
}

clase 2:testListaCantantesFamosos
Código: [Seleccionar]
import java.util.Scanner;
public class testListaCantantesFamosos{
    public static void main (String [] args){
       String entrada1= "";
       String entrada2= "";
       Scanner entradaEscaner = new Scanner (System.in);
       System.out.println ("Por favor introduzca el primer nombre:");   entrada1 = entradaEscaner.nextLine();
       System.out.println ("Por favor introduzca el segundo nombre:");   entrada2 = entradaEscaner.nextLine();
       System.out.println ("Gracias");
       ListaCantantesFamosos listadecantantes = new ListaCantantesFamosos("Nombres introducidos");
       listadecantantes.addNombre (entrada1);
       listadecantantes.addNombre (entrada2);
       
       int i = 0;
       while(i <5){
        System.out.println ("El cantante "+ (i+1) + " es " + listadecantantes.getNombre(i));
        i++;
           }
        }
    }
   
Gracias
« Última modificación: 24 de Julio 2015, 00:35 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:curso Java Ejercicio resuelto (CU00665B) Clase ArrayList del api Java.
« Respuesta #1 en: 20 de Julio 2015, 15:57 »
Hola!

Estuve analizando tu ejercicio y lo bien, cumple con la consigna. Sin embargo me gustaría hacer unas recomendaciones para mejorar el código.

Respecto de la clase ListaCantantesFamosos la veo muy bien. Pero he de sugerirte seguir las convención de cómo nombrar en este caso los atributos. Por ejemplo:
siguiendo con la convención que ya se ha tratado en otro hilo, el nombre del atributo tipo ArrayList no deberia llamarse 'listadecantantes' sino 'listaDeCantantes'. Y el parámetro 'valor_nombre' debería llamarse 'valorNombre'.
Si bien la forma de nombrar que has elegido no dará ningún error de compilación y el código funcionará correctamente, es bueno acostumbrarse a seguir estas convenciones de programación.

Respecto de la clase testListaCantantesFamosos.
En la línea:

Código: [Seleccionar]
ListaCantantesFamosos listadecantantes = new ListaCantantesFamosos("Nombres introducidos");
se llama al constructor de la clase ListaCantantesFamosos pasando como parámetro la cadena "Nombres introducidos". Esa cadena String es lo que será el nombre de la lista. Podría tener más sentido quizás bautizar la lista como : "Cantantes que me gustan" o "Cantantes de habla inglesa". Si bien cada uno puede elegir el nombre que más desee para su lista, solo quería asegurarme que estabas conciente de que esa cadena "Nombres introducidos" sería el nombre de la lista.

Al bucle:
Código: [Seleccionar]
while(i <5){
        System.out.println ("El cantante "+ (i+1) + " es " + listadecantantes.getNombre(i));
        i++;
           }

no lo veo bien. Si vas a utilizar un contador, sería más lógico usar un bucle for antes que un while, de la siguiente manera:

Código: [Seleccionar]
for (int = 0; i<5;i++){
System.out.println ("El cantante "+ (i+1) + " es " + listadecantantes.getNombre(i));

}

masterdark

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Re:curso Java Ejercicio resuelto (CU00665B) Clase ArrayList del api Java.
« Respuesta #2 en: 21 de Julio 2015, 04:06 »
Gracias por tu respuesta, bastante completa, me ayudo bastante.
Sobre lo de las convenciones, supongo que habrá que leer un poco sobre este tema para que el codigo este mas ordenado y que otro programador no tenga problemas en entenderlo.

Acerca del bucle while lo puse antes de leer el siguiente capitulo que habla sobre el for extendido y ahora recién veo como había que hacerlo correctamente.


RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:curso Java Ejercicio resuelto (CU00665B) Clase ArrayList del api Java.
« Respuesta #3 en: 21 de Julio 2015, 17:19 »
Hola!

La convención de cómo nombrar una clase, un campo, un atributo, etc. es más bien simple. Es algo que todo programador pauta respetar para beneficiarnos posteriormente en entendimiento y legibilidad.

La regla nos dice que las clases comienzan con una letra mayúscula. Los atributos, parámetros y nombres de métodos con una letra minúscula.
Ahora bien, si dichos nombres (sea clase, atributo, campo, etc) tuviera una segunda palabra en su composición, o una tercera palabra, etc. ellas comenzarían con mayúscula sin espacios intermedios.

Ejemplifiquemos:

Una clase puede llamarse entonces: 'Persona', 'AlimentoCongelado', 'GestionadorEntradasTeclado', etc.

Un campo de instancia, un atributo, o un parámetro puede llamarse entonces: 'nombre', 'valorApellido", 'valorResultadoFinal', etc.

Un método puede llamarse entonces: 'getApellido', 'calculaDimensionMatriz', 'mostrarPorConsola', etc.

Ahora bien, además de esta convenvención desde el punto de vista semántico, a la hora de bautizar una clase, un método, o un atributo, hay que tener en cuenta qué nombre elegimos.
El hecho de nombrar no es un simple "hecho estético" sino que lleva implícita información útil: de qué se trata tal o cual parámetro por ejemplo, o para qué sirve tal o cuál método.
También la forma en que nombremos las cosas evidencia si tenemos claro el panorama y sabemos qué estamos haciendo. No solo para las correcciones que vayamos a recibir, sino para el desarrollo en sí del código que estamos realizando.
Tengamos en cuenta por otro lado, que para futuros mantenimientos y/o ampliaciones de nuestro trabajo, será muy útil que la lectura del código sea entendible, por eso la buena organización del mismo es una costumbre saludable. También que los nombres que elegimos de alguna manera nos den información de qué es, o para qué sirve aquello a lo cual nos estamos refiriendo.
Recordemos que no siempre seremos nosotros los que debamos entender lo que codificamos, seguramente seremos parte de un grupo de programadores.
Por lo tanto, ya que estamos iniciándonos en la programación, empezar a incorporar estas buenas costumbres desde ahora.

 

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