Nous avons une class Ami qui représente une personne possédant un pseudonyme et pouvant avoir jusqu'à 10 amis. Outre le pseudonyme, elle contient un tableau d'objets Ami nommé amis (des amis proches) et ayant une taille fixe de 10 éléments ainsi qu'un attribut nbAmis qui correspond au nombre d'amis actuellement définis. Les amis sont ajoutés au début du tableau. Ainsi, seuls les nbAmis premiers élément du tableau contiennent des références à des objets Ami valides. Attention: deux personnes différentes peuvent avoir le même pseudonyme, et deux références sur des objet Ami sont la même personne si et seulement si elles sont indentiques.
Etant donné le code incomplet ci-dessous, nous allons le compléter. Pour chaque méthode, vous pouvez vérifier votre implémentation en décommentant les testes dans la méthode main()
public class Ami { String pseudo; Ami[] amis; int nbAmis; // Question 1 public Ami (String pseudo) // Question 2 public boolean hasMaxAmis () // Question 3 public boolean containsAmi (Ami ami) // Question 4 public boolean addAmi (Ami ami) // Question 5 public int addAllAmiDirectOf (Ami ami) // Question 6 public String listeAmisToString () // Question 7 public String amiToString () // Question 8 public int addAllOf (Ami ami) public static void main(String[] args) { /* // Test question 1 System.out.println("Test question 1: ...... ok"); Ami krypto = new Ami("Krypto"); Ami lana = new Ami("Lana"); Ami pete = new Ami("Pete"); Ami superman = new Ami("Superman"); Ami supergirl = new Ami("Supergirl"); // Test question 4 System.out.println("Test question 4: ....... ok"); supergirl.addAmi(superman); superman.addAmi(krypto); superman.addAmi(lana); superman.addAmi(pete); superman.addAmi(supergirl); // Test question 5 System.out.println("Test question 5: ....... ok"); krypto.addAllAmiDirectOf(superman); // Test question 6 System.out.println("Test question 6"); System.out.println(krypto.listeAmiToString()); System.out.println(lana.listeAmiToString()); System.out.println(pete.listeAmiToString()); System.out.println(superman.listeAmiToString()); // Test question 7 System.out.println(); System.out.println("Test question 7"); System.out.println(supergirl.amiToString()); System.out.println(superman.amiToString()); System.out.println(krypto.amiToString()); System.out.println(); if (supergirl.containsAmi(superman)) System.out.println("Supergirl ne connaît pas Superman"); if (!supergirl.containsAmi(pete)) System.out.println("Supergirl ne connaît pas Pete"); supergirl.addAmi(pete); if (supergirl.containsAmi(pete)) System.out.println("Supergirl connaît Pete"); System.out.println(); System.out.println(supergirl.amiToString()); // Test question 8 System.out.println(); System.out.println("Test question 8"); System.out.println(supergirl.amiToString()); int n = supergirl.addAllOf(supergirl); System.out.println(supergirl.amiToString()); System.out.println(" " + n + " n'ont ps pu être ajoutés !"); System.out.println(); System.out.println("Autres tests"); System.out.println(superman.amiToString()); superman.addAmi(superman); System.out.println(superman.amiToString()); System.out.println(supergirl.amiToString()); supergirl.addAmi(superman); System.out.println(supergirl.amiToString()); */ } }
Pour tout commentaire : thang [arobase] ibisc [point] fr