class O1 { // Champs private O2 lienO2; // Lien d'association (fort et permanent) avec un objet O2 // Constructeur public O1(O2 objO2) // Passage de l'objet O2 à lier avec l'objet O1 { lienO2 = objO2; } // Méthode d'instance public void jeTravaillePourO1() { Console.WriteLine("Je travaille pour O1 et demande à O2 de travailler"); lienO2.jeTravaillePourO2(); } } class O2 { public void jeTravaillePourO2() { Console.WriteLine("Je travaille pour O2"); } } public class Program { public static void Main() { O2 objO2 = new O2(); // Création de l'objet O2 O1 objO1 = new O1(objO2); // Création de l'objet O1 initialisé avec O2 objO1.jeTravaillePourO1(); // L'objet O1 envoie un message à l'objet O2 }