Autor Tema: cómo crear un esquema de relación de clases en JAVA y crear el diseño de código  (Leído 11462 veces)

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Hola buenos días soy nueva en la programación java y el tema de relación de clases no lo comprendo me pueden ayudar con este ejercicio .. gracias!

1. Como se relaciona las clases (Instituto, Persona, Administrativo,
Docente y Personal de Limpieza) - Realizar un diagrama de relación de clases. 
« Última modificación: 24 de Abril 2015, 12:12 por César Krall »

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #1 en: 22 de Abril 2015, 20:25 »
Te puedo dar una idea de como hacerlo, es sencillo:

Una Persona, puede ser Administrativo,Docente y Personal de limpieza. Lo unico que una persona no puede ser es un Instituto (suena ilógico verdad?) guiate siempre por logica, ya que en programación hay que pensar así... como en el mundo real! Con esto ya se te debe ocurrir algo :D

Avise si necesita mas ayuda!
"Luchar por tus sueños y cumplirlos... eso es vivir.."

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #2 en: 22 de Abril 2015, 23:09 »
como se haria exactamente en JAVA?

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #3 en: 23 de Abril 2015, 01:00 »
te mandaron a codificar? o realizar un diagrama?.. Si es codificar, tienes que darnos mas info sobre los atributos de cada clase, y si es un diagrama solamente, lo puedes dibujar tu misma a papel o realizarlo a maquina, yo los diagramas que he hecho, lo he hecho en paint.

Ejemplo:



Esto es un esquema (en paint... hazlo mas bonito claro u,u) La explicacion a este diagrama seria:

1. La Clase Producto, es la Super Clase. Osea, de esta clase, las demás clases heredaran sus atributos y métodos.

2. La clase Productos Congelados es la super clase intermedia, de esta clase, las clases Congelado por aire, Congelado por agua y Congelado por nitrogeno heredaran de Productos Congelados.

Estas dos Super clases, son las clases Padre. Las flechas esas con la bolita roja, apuntan a la clase de quien van a heredar sus atributos y metodos (hazlo con flechas, yo lo hice en paint porq bueno >->) Estas clases son las clases hijo.

Mas claro:

Producto: es padre de ProductosFrescos, ProductoCongelados, ProductosRefrigerados, CongeladoAire, CongeladoAgua y CongeladoNitrogeno.

Productos Congelados: es padre de CongeladoAire, CongeladoAgua y CongeladoNitrogeno.

Citar
Una Persona, puede ser Administrativo,Docente y Personal de limpieza.

Aqui claramente dije una clase Padre y clases hijas.... que seria la clase Instituto??... intente realizar el diagrama y nos comentas!

Si no entiendes algo, comentelo!
« Última modificación: 23 de Abril 2015, 01:30 por Dan_SB »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #4 en: 23 de Abril 2015, 02:31 »
Hola gracias por tu ejemplo, lo que entiendo es que tengo que hacer un programa acerca de lo que esta compuesto un colegio con las clases  (Instituto, Persona, Administrativo,
Docente y Personal de Limpieza) - tengo que codificarlo en java y realizar un diagrama de relación de clases. 

yo hice mas o menos por lo que he entendido el siguiente diagrama:
me gustaría que me ayudaras con la codificación en java.. Gracias

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #5 en: 23 de Abril 2015, 17:53 »
Bien!! exacto, haces un programa de un colegio o institución! Hiciste un diagrama bastante bueno, pero les hago unas correcciones!



* Veo que la clase persona la colocaste en la cima, esto es incorrecto, porque si colocas persona en la cima, las demás clases heredaran sus atributos... incluyendo instituto.

¿Puede un instituto tener nombre...? Si.
¿Puede tener un instituto edad...? Si.
pero... puede tener un instituto cedula...?  suena raro verdad?


Lo correcto seria, colocar instituto en la cima, porque una persona si puede pertenecer a un instituto.

*El atributo nombre en docente, esta sobreescrito... recuerda que se esta heredando de la clase Persona, ya no necesitas colocarle el atributo nombre aquí.

*En aseador, tienes como atributo Limpieza... esto ya se trataría de un método o función, y no de un atributo, ya que limpieza abarca muchas cosas (barrer, trapear, desempolvar, etc..)

Hice un esquema como yo lo desarrollaría:


Le coloque en aseador esos atributos (puras herramientas de trabajo xd), entonces el orden seria así:

Institución al que pertenece la persona < == Cargo (administrativo) que ejerce la persona

En breve te mando un código sobre el esquema que te compartí :)
« Última modificación: 23 de Abril 2015, 17:56 por Dan_SB »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #6 en: 23 de Abril 2015, 19:18 »
 :) muchas gracias por tu ayuda   :D 

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #7 en: 23 de Abril 2015, 23:21 »
Bien, aquí el código con este esquema actualizado (me comí la edad en la clase persona  :P):



Empezemos.

Clase Instituto:
Código: [Seleccionar]
public class Instituto {
     String nombreInstituto, ciudad, direccion;
     public Instituto(String nombreInstituto, String ciudad, String direccion){
         this.nombreInstituto = nombreInstituto;
         this.ciudad = ciudad;
         this.direccion = direccion;
     }
     
     public void setNombreInstituto(String dato){nombreInstituto = dato;}
     public void setCiudad(String dato){ciudad = dato;}
     public void setDireccion(String dato){direccion = dato;}
     public String getNombreInstituto(){return nombreInstituto;}
     public String getCiudad(){return ciudad;}
     public String getDireccion(){return direccion;}
     public void imprimirInfoInst(){ 
     System.out.println("Colegio: "+getNombreInstituto()+"\nCiudad: "+getCiudad()+"\nDireccion: "+getDireccion());}
}

Clase Persona:
Código: [Seleccionar]
public class Persona extends Instituto {
    String nombre, apellido, cedula;
    int edad;
    public Persona(String nombreInstituto, String ciudad, String direccion){
        super(nombreInstituto, ciudad, direccion);
        nombre = "Desconocido";
        apellido = "Desconocido";
        edad = 0;
        cedula = "Desconocido";
    }

    public void setNombre(String dato){nombre = dato;}
    public void setApellido(String dato){apellido = dato;}
    public void setEdad(int dato){edad = dato;}
    public void setCedula(String dato){cedula = dato;}
    public String getNombre(){return nombre;}
    public String getApellido(){return apellido;}
    public int getEdad(){return edad;}
    public String getCedula(){return cedula;}
    public void imprimirDatos(){imprimirInfoInst();
        System.out.println("Nombre: "+getNombre()+" "+getApellido() +"\nEdad: "+getEdad()+"\nCedula: "+getCedula());
    }
}

Clase Administrativo:
Código: [Seleccionar]
public class Administrativo extends Persona {
       String fechaInicio, puesto;
       public Administrativo(String nombreInstituto, String ciudad, String direccion){
           super(nombreInstituto,ciudad,direccion);
           fechaInicio = "Desconocida";
           puesto = "Desconocida";
       }

       public void setFechaInicio(String dato){fechaInicio = dato;}
       public void setPuesto(String dato){puesto = dato;}
       public String getFechaInicio(){return fechaInicio;}
       public String getPuesto(){return puesto;}
       public void imprimirCargo(){imprimirDatos();
       System.out.println("Fecha de Inicio: "+getFechaInicio() +"\nPuesto o Cargo: "+getPuesto());}
}

Clase Docente:
Código: [Seleccionar]
public class Docente extends Administrativo{
    private String materia, grado, salon;
    public Docente(String nombreInstituto, String ciudad, String direccion){
        super(nombreInstituto,ciudad,direccion);
        materia = "";
        grado = "";
        salon = "";
    }
   
    public void setMateria(String dato){materia = dato;}
    public void setGrado(String dato){grado = dato;}
    public void setSalon(String dato){salon = dato;}
    public String getMateria(){return materia;}
    public String getGrado(){return grado;}
    public String getSalon(){return salon;}
    public void imprimirDatoDocente(){
       imprimirCargo();
       System.out.println("Materia encargada: "+getMateria()+"\nGrado encargado: "+getGrado()+"\nSalon: "+getSalon()+"\n");
    }
}

Clase Personal Aseo:
Código: [Seleccionar]
public class PersonalAseo extends Administrativo {
    private boolean escoba, trapeador, detergente, recogedor;
    private String e,t,d,r;
    public PersonalAseo(String nombreInstituto, String ciudad, String direccion){
        super(nombreInstituto,ciudad,direccion);
        escoba = false;
        trapeador = false;
        detergente = false;
        recogedor = false;
        e = "No."; t = "No."; d = "No."; r = "No.";
    }
   
    public void setEscoba(boolean dato){escoba = dato; if(escoba == true){e = "Si.";}else{e = "No.";}}
    public void setTrapeador(boolean dato){trapeador = dato; if(trapeador == true){t = "Si.";}else{t = "No.";}}
    public void setDetergente(boolean dato){detergente = dato; if(detergente == true){d = "Si.";}else{d = "No.";}}
    public void setRecogedor(boolean dato){recogedor = dato; if(recogedor == true){r = "Si.";}else{r = "No.";}}
    public String getEscoba(){return e;}
    public String getTrapeador(){return t;}
    public String getDetergente(){return d;}
    public String getRecogedor(){return r;}
    public void imprimirDatoAseador(){
        imprimirCargo();
        System.out.println("¿Esta equipado con una escoba?: "+getEscoba()
        +"\n¿Esta equipado con un trapeador?: "+getTrapeador()+"\n¿Esta equipado con desinfectante?: "+getDetergente()
        +"\n¿Tiene recogedor?: "+getRecogedor()+"\n");
    }
}

En esta ultima clase puedes agregarle mas métodos, atributos, si crees que falto algo o si se te prende el bombillo de la imaginación! :)

Aquí va la prueba, cree otra clase con un main con este código (Esta clase solo fue prueba y ya):
Código: [Seleccionar]
public class Prueba {
    public static void main(String[]args){
    Docente profesor1 = new Docente("Academia Santa Maria", "Colón", "C 4TA, Colón, Panamá");
    PersonalAseo aseador1 = new PersonalAseo("Academia Santa Maria", "Colón","C 4TA, Colón, Panamá");
    profesor1.setNombre("Stephanie");
    profesor1.setApellido("Joan.");
    profesor1.setEdad(35);
    profesor1.setCedula("3-567-2345.");
    profesor1.setFechaInicio("15/03/2014.");
    profesor1.setPuesto("Profesora de primaria.");
    profesor1.setMateria("Expresion Artistica.");
    profesor1.setGrado("Tercer Grado.");
    profesor1.setSalon("12-BC");
    aseador1.setNombre("Julio");
    aseador1.setApellido("Gonzalo.");
    aseador1.setEdad(25);
    aseador1.setCedula("4-905-3423.");
    aseador1.setFechaInicio("20/02/2015.");
    aseador1.setPuesto("Aseador.");
    aseador1.setEscoba(true);
    aseador1.setRecogedor(true);
    profesor1.imprimirDatoDocente();
    aseador1.imprimirDatoAseador();
    }
}

Ejecución:


Bien, puedes ampliar mas el código si gustas, y recomiendo que veas, estudies, leas y trates de comprender este código. Si aun te quedan dudas o no entiendes algo del código, puedes preguntarlo aquí y te ayudo.  :D

Aaah y disculpa la demora, viajaba de la Universidad a casa y ese viaje tarda un pelo D;

Saludos!!
"Luchar por tus sueños y cumplirlos... eso es vivir.."

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #8 en: 23 de Abril 2015, 23:39 »
hola en verdad muchisimas gracias por tu gran ayuda, gracias a tu valioso aporte me has ayudado a entender un poco mas el tema  ;) ;) :-* ;D

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #9 en: 23 de Abril 2015, 23:48 »
Me alegro que le haya sido de ayuda :)

Cualquier cosa, aquí estoy!
"Luchar por tus sueños y cumplirlos... eso es vivir.."

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:relación de clases en JAVA
« Respuesta #10 en: 23 de Abril 2015, 23:59 »
Muchas Gracias :-* :-* :-* ;D

 

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