Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: tu en 22 de Abril 2015, 17:51
-
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.
-
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!
-
como se haria exactamente en JAVA?
-
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:
(http://i.imgur.com/VUSowZb.png)
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.
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!
-
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
-
Bien!! exacto, haces un programa de un colegio o institución! Hiciste un diagrama bastante bueno, pero les hago unas correcciones!
(http://i.imgur.com/0nfq4hY.png)
* 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:
(http://i.imgur.com/Cslntqt.png)
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í :)
-
:) muchas gracias por tu ayuda :D
-
Bien, aquí el código con este esquema actualizado (me comí la edad en la clase persona :P):
(http://i.imgur.com/9R0eLLN.png)
Empezemos.
Clase Instituto:
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:
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:
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:
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:
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):
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:
(http://i.imgur.com/kqtuwGc.png)
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!!
-
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
-
Me alegro que le haya sido de ayuda :)
Cualquier cosa, aquí estoy!
-
Muchas Gracias :-* :-* :-* ;D