elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Quería saber si mi código es muy redundante o está bien así?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Quería saber si mi código es muy redundante o está bien así?  (Leído 2,364 veces)
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
¿Quería saber si mi código es muy redundante o está bien así?
« en: 11 Octubre 2012, 04:51 am »

Bueno, he estado revisando el libro de Deitel y otros manuales y de allí he empezado a tomar un estilo propio de programación; quiero mostrarles la forma como estoy empezando a programar mis clases en Java. El problema que tengo es que a veces me parece que es muy redundante o que estoy llenando mi código de demasiadas llamadas a métodos y constructores lo cual creo que traería como consecuencia que el programa sea un poco más lento, pero por otro lado hace que mi código sea más ordenado y fácil de entender, bueno, quiero sus opiniones y tal vez alguna otra forma más elegante de hacerlo.

Les presento a manera de ejemplo muy sencillo la definición de dos clases: Clase Persona y Clase Alumno.

Código
  1. public class Persona {
  2.   // Atributos privados
  3.    private String nombre;
  4.    private int edad;    
  5.  
  6.    public Persona() {        
  7.        this(null, 0);        
  8.    }        
  9.  
  10.    public Persona(String nombre) {        
  11.        this(nombre, 0);
  12.    }
  13.  
  14.    public Persona(String nombre, int edad) {
  15.        super();    // Llamada explícita al constructor de la clase Object
  16.        setNombre(nombre);
  17.        setEdad(edad);
  18.    }
  19.  
  20.    public void setNombre(String nombre) {
  21.        this.nombre = nombre;
  22.    }
  23.  
  24.    public void setEdad(int edad) {
  25.        this.edad = edad;
  26.    }
  27.  
  28.    public String getNombre() {
  29.        return nombre;
  30.    }
  31.  
  32.    public int getEdad() {
  33.        return edad;
  34.    }
  35.  
  36.    public String toString() {
  37.        return String.format("%s: %s\n%s: %d\n",
  38.            "Nombre", getNombre(),
  39.            "Edad", getEdad());
  40.    }  
  41. }
  42.  

Código
  1. public class Alumno extends Persona {    
  2.    private String codigo;
  3.  
  4.    public Alumno() { this(null, 0, null); }
  5.  
  6.    public Alumno(String nombre) {
  7.        this(nombre, 0, null);
  8.    }
  9.  
  10.    public Alumno(String nombre, int edad) {
  11.        this(nombre, edad, null);
  12.    }        
  13.  
  14.    public Alumno(String nombre, int edad, String codigo) {
  15.        super(nombre, edad);      // Llamada al constructor de la superclase directa  
  16.        setCodigo(codigo);
  17.    }
  18.  
  19.    public void setCodigo(String codigo) {
  20.        this.codigo = codigo;
  21.    }
  22.  
  23.    public String getCodigo() {
  24.        return codigo;
  25.    }
  26.  
  27.    public String toString() {
  28.        return String.format("%s%s: %s\n", super.toString(),
  29.            "Código", getCodigo());
  30.    }
  31. }
  32.  


« Última modificación: 11 Octubre 2012, 04:58 am por theluigy13etv » En línea

ed0810

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: ¿Quería saber si mi código es muy redundante o está bien así?
« Respuesta #1 en: 11 Octubre 2012, 04:54 am »

Tu código cumple perfectamente los estándares de programación, sólo documéntalo cuando tengas métodos algo complejos, o aún cuando te parezcan simples, un mes después de programar a ver si nos acordamos de lo que hicimos :D


En línea

FrostLeviathan

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ¿Quería saber si mi código es muy redundante o está bien así?
« Respuesta #2 en: 11 Octubre 2012, 23:40 pm »

No veo necesario tener estos constructores:
Código
  1.    public Persona() {        
  2.        this(null, 0);        
  3.    }        
  4.  
  5.    public Persona(String nombre) {        
  6.        this(nombre, 0);
  7.    }
  8.  
ya que no veo que sea algo util y puede generar errores en el futuro tener Personas sin nombre y/o edad. Lo mismo con la clase Alumno.
En línea

theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: ¿Quería saber si mi código es muy redundante o está bien así?
« Respuesta #3 en: 12 Octubre 2012, 20:12 pm »

No veo necesario tener estos constructores:
Código
  1.    public Persona() {        
  2.        this(null, 0);        
  3.    }        
  4.  
  5.    public Persona(String nombre) {        
  6.        this(nombre, 0);
  7.    }
  8.  
ya que no veo que sea algo util y puede generar errores en el futuro tener Personas sin nombre y/o edad. Lo mismo con la clase Alumno.

Sí, creo que tienes razón, no tendría sentido que exista un alumno sin un código o una persona sin un DNI o nombre.
En línea

sapito169


Desconectado Desconectado

Mensajes: 629



Ver Perfil
Re: ¿Quería saber si mi código es muy redundante o está bien así?
« Respuesta #4 en: 12 Octubre 2012, 23:43 pm »

el codigo esta bien

no hay necesidad para crear un constructor de esa manera por que el compilador te lo crea de todas maneras

si tiene sentido Por que la persona pasa de un estado de tener dni a un estado de no tenerlo

es mejor quieres tener validacion pongas un metod que valide

class Alumno ..{
...
     boolean esValido(){
    ..
    }
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comprobar si este codigo en batch esta bien
Scripting
blha 0 2,328 Último mensaje 11 Septiembre 2008, 16:19 pm
por blha
Quería saber si esto puede hacerse con html
Desarrollo Web
Roboto 2 2,366 Último mensaje 20 Febrero 2016, 20:56 pm
por Roboto
[PYTHON]Saber si se ha realizado bien una acción
Python
dimineko 4 2,421 Último mensaje 1 Diciembre 2016, 23:40 pm
por tincopasan
Esta bien elaborado este codigo?
Programación C/C++
JoneDawson 1 3,820 Último mensaje 5 Diciembre 2020, 18:19 pm
por K-YreX
Creo que me meti en una pagina prohibida y queria saber algo
Dudas Generales
LucchettiFan 2 3,094 Último mensaje 31 Diciembre 2023, 18:12 pm
por LucchettiFan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines