Classe abstraire et Interface

Classe abstraire et Interface - Java - Programmation

Marsh Posté le 27-02-2010 à 15:51:51    

Bonjour à  tous,  
 
J'ai du mal a comprendre quelque chose. Je vais vous expliquer le contexte avant :
 
Dans une entreprise, il y a des employees (normal  :pt1cable: ) mais ils ont des fonctions différentes :
 
. Les secrétaires  
· Les directeurs
· Les chefs de projet  
· Les développeurs
 
Chaque employé est caractérisé par un nom, un prénom, une adresse, une ville.
Un chef de projet est responsable d’un projet. Il peut être affecté à un autre projet.
Un secrétaire a un numéro de bureau.
Un développeur a un numéro d’équipe. Il peut aussi bien changer d’équipe.
Le directeur a un numéro de département.
Pour l’ensemble des employés, il sera possible de modifier leur nom et leur prénom ainsi
que leur adresse.
A l’exécution, nous souhaitons connaître le nombre total d’employés, et le détail pour
chaque département.
 
Je vois ça comme ça : Employée en classe abstraite, secrétaire et directeur en héritage, chef de projet et développeur en implémentation.
 
Est ce que je me trompe ?
 
Merci d'avance?

Reply

Marsh Posté le 27-02-2010 à 15:51:51   

Reply

Marsh Posté le 27-02-2010 à 16:38:30    

Ouai, je pense que tu te trompes. C'est pour un exercice je suppose?
 
Chef de projet et développeur en implémentation de quoi? Il te faut une interface pour ca, et t'en as pas.
 
Après, je vois pas pourquoi tu veux te compliquer la vie: t'as 4 sortes d'employés, je vois pas le souci:
- employé en classe mère (et abstraite si t'es sur que chaque employé devra forcément appartenir à une des tes 4 catégories),
- les 4 autres en classes filles qui héritent de employé,
- méthodes pour gérer nom, prénom, addresse et ville dans la classe employé,
- après l'énoncé est pas très clair à propos des départements.
 
Mais bon c'est tellement évident... Si t'arrives pas conceptualiser ca tout seul, t'es mal barré pour la suite.


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 27-02-2010 à 16:53:19    

Merci pour ta réponse même si elle quelque peu agressive...
 
Bien avant d'avoir eu mon cours sur l'héritage et l'implémentation, j'avais fait EXACTEMENT comme tu as dit le seule souci c'est qu'à la fin du cours, il nous a demandé d'intégrer l'implémentation dans cette exercice : Notion que j'ai du mal à saisir malgré les nombreux cours que j'ai pu lire sur le net.
 
Lorsque mon prof nous a présenté son cours, il nous a pas donné d'exemple concret donc j'ai eu du mal a saisir quand utiliser quoi.
 
Donc si tu es sur qu'il n'y aura pas d'implémentation je vais le faire sans mais bon je doute un peu quand même...
 
Est ce qu'il est possible de faire ceci :
 

Code :
  1. public abstract void employee();

Message cité 1 fois
Message édité par Onita le 27-02-2010 à 17:06:07
Reply

Marsh Posté le 27-02-2010 à 17:39:17    

Onita a écrit :

Merci pour ta réponse même si elle quelque peu agressive...
 
Bien avant d'avoir eu mon cours sur l'héritage et l'implémentation, j'avais fait EXACTEMENT comme tu as dit le seule souci c'est qu'à la fin du cours, il nous a demandé d'intégrer l'implémentation dans cette exercice : Notion que j'ai du mal à saisir malgré les nombreux cours que j'ai pu lire sur le net.
 
Lorsque mon prof nous a présenté son cours, il nous a pas donné d'exemple concret donc j'ai eu du mal a saisir quand utiliser quoi.
 
Donc si tu es sur qu'il n'y aura pas d'implémentation je vais le faire sans mais bon je doute un peu quand même...
 
Est ce qu'il est possible de faire ceci :
 

Code :
  1. public abstract void employee();



Techniquement, c'est valide. Après, c'est une déclaration de méthode que tu fais là, donc je sais pas trop ce que tu veux faire avec.
 
Bon, pour revenir à l'interface, déjà, tu pourras dire à ton prof qu'il pourrait faire un effort et vous trouver des exemples et exercices ou ca sert vraiment, histoire que vous puissiez voir par vous-meme...
 
Pour faire simple, l'interface, comme son nom l'indique, ca définit juste les méthodes que tu vas pouvoir appeller.
Si tu veux en utiliser une dans ton exercice, ca sera pour l'employé. Tu auras:
- une interface Employe, qui va définir les getters/setters pour nom, prénom, adresse, ville, dans ce style là (je condense le code, ajoutes le reste, mets des commentaires toussa, et je sais plus s'il y a besoin de mettre public ou autre chose devant les méthodes):

Code :
  1. public interface Employe {
  2.        void setNom(String nom);
  3.        String getNom();
  4. }


- une classe EmployeImpl, qui implémente Employe et devra donc fournir une implémentation de toutes ses méthodes. Tu peux la mettre abstraite comme avant:

Code :
  1. public abstract class EmployeImpl implement Employe {
  2.        String nom;
  3.        public void setNom(String nom){this.nom=nom;}
  4.        public String getNom(){return nom;}
  5. }


- après tu reprends les classes que tu avais déjà pour les types d'employés, qui vont hériter de EmployeImpl.
Et c'est gagné. Enfin, je suppose que c'est ca que ton prof veut; tu pourrais aussi implémenter l'interface directement dans chaque classe "finale" mais c'est un peu con vu qu'il faudra que tu recopies l'implémentation des getters/setters dans chaque classe.


---------------
C'était vraiment très intéressant.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed