Buenas javaquery, para responder a este ejercicio sería bueno que vieras los conceptos de programación orientada a objetos explicados en el curso de Java básico:
http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188Comentar:
- Normalmente todos los nombres de clase empiezan por mayúscula siguiendo convención camelCase (lo has hecho bien) y todos los nombres de atributo o métodos comienzan por minúscula siguiendo también convención camelCase
En lugar de obtenernombre sería obtenerNombre
- Los métodos para obtener se suelen escribir como getNombreDelAtributo por ejemplo getNombre
- Te faltarían los métodos para establecer que se suelen escribir como setNombreDelAtributo por ejemplo setNombre
Según el enunciado del ejercicio cada persona podríamos hacer un diseño distinto. Una primera idea que se me ocurre sería algo como:
Clase Aplicacion, con el atributo listaDeProyectos (lista de objetos de tipo Proyecto)
Clase Proyecto con el atributo idProyecto (int identificador del proyecto), jefeDeProyecto (de tipo JefeDeProyecto), nombreDeProyecto (de tipo String), fechaDeComienzo (puede ponerse tipo String) , listaDeActividadesDelProyecto (de tipo Lista de Actividad)
Clase Persona, con los atributos nombre, DNI y puestoQueOcupa.
Clase JefeDeProyecto, que heredará de Persona. Además de los atributos de persona, tendrá como atributo ListaDeProyectosGestionada (esto será un array de capacidad 3 elementos correspondientes a los tres proyectos que puede gestionar un proyecto)
Clase Programador
Clase Actividad, con los atributos nombreActividad (String), listaDeProgramadoresAsignados (de tipo Lista de Programadores)
Hay un detalle de diseño problemático: si introduces como atributo de Proyecto un jefe de proyecto, y en la clase JefeDeProyecto un atributo ListaDeProyectosGestionada, tendrías información duplicada. Para evitarlo, habría que elegir el incluir esta información en una sola clase. Lo mismo ocurre con la asignación de actividades a programadores.
Para saber los proyectos gestionados por un jefe de proyecto, tendrías que recorrer la listaDeProyectos de la aplicación, y para cada proyecto comprobar quién es el jefe de proyecto.
Esto es una idea, habría que plantearlo con más calma y ver si serían necesarias mejoras o cambios
Salu2