Autor Tema: Ejercicio CU00624B Java ¿importancia del orden de métodos y constructores?  (Leído 4485 veces)

ZID

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Código: [Seleccionar]
/**
 * Ejercicio DiscoMusical_24 CU00624B (25)
 * @author ZID
 */
public class DiscoMusical_24 {

String titulo;
String texto;
int añoEdicion;
String formato;
boolean digital;

public static void main(String[] args) {

DiscoMusical_24 disco = new DiscoMusical_24 ("Mecano", "Aidalai", 1991, "CD", true);

System.out.println("Titulo: " + disco.titulo);
System.out.println("Texto: " + disco.texto);
System.out.println("Año: " + disco.añoEdicion);
System.out.println("formato: " + disco.formato);
System.out.println("Digital: " + disco.digital);
}
 




    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public int getAñoEdicion() {
        return añoEdicion;
    }

    public void setAñoEdicion(int añoEdicion) {
        this.añoEdicion = añoEdicion;
    }

    public String getFormato() {
        return formato;
    }

    public void setFormato(String formato) {
        this.formato = formato;
    }

    public boolean isDigital() {
        return digital;
    }

    public void setDigital(boolean digital) {
        this.digital = digital;
    }



//Constructor
public DiscoMusical_24(String titulo, String texto, int añoEdicion, String formato, boolean digital) {
        this.titulo = titulo;
        this.texto = texto;
        this.añoEdicion = añoEdicion;
        this.formato = formato;
        this.digital = digital;
    }



       
   
}
« Última modificación: 18 de Diciembre 2014, 08:55 por Alex Rodríguez »

Gilding

  • Sin experiencia
  • *
  • Mensajes: 44
    • Ver Perfil
Re:Ejercicio CU00624B Métodos en Java
« Respuesta #1 en: 11 de Diciembre 2014, 13:04 »
Hola ZID.

Tú ejercicio esta resuelto correctamente. Por mi parte solo te haré algunas pequeñas indicaciones.

No sé si a esta altura del curso ya has visto la diferencia entre declarar una variable como public o private. De una forma u otra, los atributos de la clase se deben declarar como private.


Por otro lado, creo que seria más conveniente no incluir el método main en la misma clase que DiscoMusical_24. Porque esta clase corresponde a un tipo de objeto concreto y el método main digamos que es el "cuerpo" del programa y por norma general estará incluído dentro de una clase principal que controlará todo el flujo del programa. Yo habría creado por ejemplo una clase llamada GaleriaMusical o BibliotecaMusical y dentro de está incluiría el método main.


No importa en que orden declares los métodos y los constructores de una clase. Pero para facilitar la lectura y para que quede más ordenado es recomendable declarar el constructor de la clase justo después de declarar los atributos de la clase. Esto solo es una indicación, como he dicho, el orden en el que los pongas no afecta al funcionamiento del programa. Otra cosa más que me gustaría añadir sobre los constructores: no he leído el ejercicio, la verdad, asi que no se que pide exactamente, pero veo que solo has declarado un constructor con parámetros. Es recomendable crear también un constructor que no reciba parámetros e inicialice los atributos por defecto: las variables strings vacias, las variables numéricas a cero y las variables booleanas a false. Puede que nunca se llegue a utilizar este constructor, pero nunca esta demás tenerlo declarado.


Para terminar una indicación sobre la declaración de los parámetros de los métodos y los constructores. En los métodos set, declaras como parámetro exactamente la misma palabra que utilizas como atributo. Aunque esto no afecta a la funcionalidad, si que puede dar lugar a errores. Ahora mismo solo haces una asignación a un atributo, pero si tuvieras que realizar más operaciones podría crearte confusiones a ti como programador el tener dos variables que se denominan exactamente igual dentro de un método, una que corresponde a un atributo de la clase y otra que corresponde a la variable que utilizamos como parámetro del método. Por ello es recomendable utilizar una palabra distinta para el parámetro, o añadirle un prefijo o un sufijo para poder distinguirlos. En el caso de los métodos setters, el curso recomienda añadir el prefijo "valor" al nombre del atributo. Por ejemplo para el atributo "titulo", en su método set utilizariamos el parámetro "valortitulo" o "valorTitulo".


Un saludo y espero haberte servido de ayuda.
« Última modificación: 11 de Diciembre 2014, 13:06 por Gilding »

ZID

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 8
    • Ver Perfil
Re:Ejercicio CU00624B Java ¿importancia del orden de métodos y constructores?
« Respuesta #2 en: 25 de Diciembre 2014, 14:04 »
Gracias por las correcciones, me son de gran ayuda.

La única cosa que me confunde es lo último que dices de que en los métodos set, declaras como parámetro exactamente la misma palabra que utilizas como atributo. Hasta ahora siempre me han dicho que lo haga así, es la primera vez que me dicen lo contrario.

Saludos

Gilding

  • Sin experiencia
  • *
  • Mensajes: 44
    • Ver Perfil
Hola ZID y feliz año nuevo!

Perdón por la tardanza en responder. He parado poco en casa estas fiestas.

Es solo una recomendación. Puedes seguir nombrando el parámetro del método set igual que el atributo de la clase. Pero es recomendable añadirle un prefijo para poder distinguir ambos dentro del método. Como he dicho, si solo es una asignación del parámetro al atributo es prácticamente imposible que surja un error. Sin embargo, si tienes que realizar alguna operación con el parámetro dentro del método antes de asignarlo al atributo, si que pueden sugir errores. De todos modos, con el uso de la palabra clave "this" cuando utilizas un atributo de la clase, deja de ser importante como denomines al parámetro del método, puesto que siempre que llames al atributo estará precedido de dicha palabra clave, evitando así cualquier confusión o error. Por este motivo es solo una recomendación y no algo obligatorio.

Personalmente prefiero evitar tener dos variables denominadas de la misma forma dentro de una ecuación o un algoritmo, sea cual sea la ecuación o el algoritmo. Pero es solo mi opción personal, eres libre de hacerlo como más te guste a ti. Otra cosa distinta es utilizar variables locales con el mismo nombre pero en distintos ámbitos a lo largo de un programa, como por ejemplo la típica "i" como contador de iteraciones.

Un saludo!

 

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