Java, lier deux classes entre elles
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Java, lier deux classes entre elles



  1. #1
    lordgodgiven

    Java, lier deux classes entre elles


    ------

    Bonjour,

    Étant novice en java, merise et uml j'aimerais savoir :

    comment passer d'un MCD en Diagramme de Classe
    faire un lien entre deux classes sachant que dans le MCD les deux entités sont reliées par une table de jointure (1,n - 1,n)
    faire un lien entre deux classes sachant que dans le MCD les deux entités sont reliées par une relation père fils (1,n - 1,1)

    Code:
    public class Fils {
    	
    	private int idf;
    	private String nomf;
    	private String prenomf;
    	
    	
    	
    	public Fils(int idf, String nomf, String prenomf) {
    		super();
    		this.idf = idf;
    		this.nomf = nomf;
    		this.prenomf = prenomf;
    	}
    
    
    
    	public int getIdf() {
    		return idf;
    	}
    
    
    
    	public void setIdf(int idf) {
    		this.idf = idf;
    	}
    
    
    
    	public String getNomf() {
    		return nomf;
    	}
    
    
    
    	public void setNomf(String nomf) {
    		this.nomf = nomf;
    	}
    
    
    
    	public String getPrenomf() {
    		return prenomf;
    	}
    
    
    
    	public void setPrenomf(String prenomf) {
    		this.prenomf = prenomf;
    	}
    	
    	
    	
    
    }
    Code:
    public class Pere {
    	
    	private int idp;
    	private String nomp;
    	private String prenomp;
    	
    	
    	
    	public Pere(int idp, String nomp, String prenomp) {
    		super();
    		this.idp = idp;
    		this.nomp = nomp;
    		this.prenomp = prenomp;
    	}
    
    
    
    	public int getIdp() {
    		return idp;
    	}
    
    
    
    	public void setIdp(int idp) {
    		this.idp = idp;
    	}
    
    
    
    	public String getNomp() {
    		return nomp;
    	}
    
    
    
    	public void setNomp(String nomp) {
    		this.nomp = nomp;
    	}
    
    
    
    	public String getPrenomp() {
    		return prenomp;
    	}
    
    
    
    	public void setPrenomp(String prenomp) {
    		this.prenomp = prenomp;
    	}
    	
    	
    	
    
    }

    Merci

    -----

  2. #2
    hysos

    Re : Java, lier deux classes entre elles

    Bonjour,

    les relations se traduisent concrètement par:

    1: une variable d'instance
    n: une collection (LinkedList, ArrayList...... en java).

    Donc ici:
    *) un Fils à un Père et un seul et il ne change pas (père biologique). Il faut donc dans la classe Fils, ajouter un attribut:

    private Pere pere;

    *) Un père peut avoir plusieurs fils, dans ce cas, dans la classe Pere cela se traduit par l'ajout de l'attribut:



    Pour info, ArrayList, LinkedList, etc... implémente l'interface List qui implémente l'interface Collection. Donc pour être le plus général possible, l'ensemble des fils est géré par un objet de type Collection. (héritage de type)

    Code:
       private Collection fils ;
    
    Par contre ta modélisation pose problème car pour l'instant, un père comme un fils à un id, un nom et un prénom et tu dupliques les getters et setters dans les deux classes.  Un utilisant la modélisation, les classes Pere et Fils devraient hériter d'une classe Personne (par exemple). qui dans ton cas devrait posséder les attributs  id, un nom et un prénom (et éventuellement plus d'attributs si ils sont en commun entre la classe Pere et Classe Fils).
    
    
    public class Personne {
    	
    	protected int id;
    	protected String nom;
    	protected String prenom;
    		
    	public Fils(int id, String nom, String prenom) {
    		super();
    		this.id = id;
    		this.nom = nom;
    		this.prenom = prenom;
    	}
    
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getNom() {
    		return nom;
    	}
    
    	public void setNom(String nom) {
    		 this.nom = nom;
          }
    	 public String getPrenomf() {
    		 return prenom;
    	 }
    
    	 public void setPrenom(String prenom) {
    		 this.prenom = prenom;
    	 }
    }
    
    
    et ensuite une classe Fils et une classe Pere qui elles déclarent les attributs et méthodes spécifiques à chacune.
    
    public class Fils extends Personne{
    ...
          private Pere pere;
    ...
    ...
    
    }
    
    et 
    
    public class Pere extends Personne{
    ...
        private Collection fils;
    ...
    ...
    
    }



    Ensuite, dans ton code, tu auras des déclarations du genre:

    Personne persFils = new Fils(id,nom,prenom);
    Personne persPere = new Pere(id,nom,prenom);

    ...
    ..

    String nomPere = persPere.getNom();
    String prenomFfils = persFils.getPrenom();

    (utilisation du polymorphisme )


    De plus, si tu considères que les noms et/ou prénoms ne changent pas pour une personne une fois initialiser, tu dois déclarer cet attribut en final (ex: private final String nom). Exemple, le père biologique d'un fils ne change pas, donc, dans la classe Fils:

    private final Pere pere;
    Dernière modification par JPL ; 27/07/2014 à 15h31. Motif: Ajout de la balise Code (#) pour garder l'indentation

Discussions similaires

  1. Comment coller deux nappes à contacts graphites entre elles ?
    Par Sans Nom dans le forum Électronique
    Réponses: 2
    Dernier message: 08/01/2013, 18h01
  2. Deux paraboles tangentes entre elles
    Par nicemath dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 30/05/2012, 23h01
  3. Division de deux tensions entre elles
    Par invite1ab15a59 dans le forum Électronique
    Réponses: 14
    Dernier message: 17/12/2010, 21h06
  4. Réponses: 4
    Dernier message: 01/05/2010, 13h38
  5. lier deux murs entre eux
    Par ingalss dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 3
    Dernier message: 18/12/2007, 17h54