package Cours7NotesExpress; import java.util.ArrayList; import java.util.List; public class MainTypeProdAlimentaire { public static void main(String[] arg) { /* * Un attribut static se manipule par une méthode statique * appelée non pas sur un objet mais sur la classe */ TypeProdAlimentaire.setTauxTVA(20.5); ChariotAlimentaire chariot = new ChariotAlimentaire(); chariot.getContenu().add(new TypeProdAlimentaire()); // provoque une erreur d'exécution //chariot.getContenuI().add(new TypeProdAlimentaire()); /* * Manipulation de l'énumération */ TypeProdAlimentaire t = new TypeProdAlimentaire(); System.out.println(t.getFamille()); t.setFamille(FamilleAliment.valueOf("laitages")); System.out.println(t.getFamille()); /* * Création d'une liste immuable de produits alimentaires * à partir de Java 9 * */ List panierGourmand = new ArrayList(); panierGourmand.add(new TypeProdAlimentaire("chocolat noir Perou", 20.0, 4000)); panierGourmand.add(new TypeProdAlimentaire("nougat Montélimar", 30.0, 3000)); System.out.println("Panier Gourmand\n"+panierGourmand); panierGourmand.add(new TypeProdAlimentaire("café Guatemala", 40.0, 10)); System.out.println("Panier Gourmand\n"+panierGourmand); List> panierGourmandImmV1 = List.of(panierGourmand); System.out.println("Panier Gourmand ImmV1\n"+panierGourmandImmV1); // on peut modifier un élément interne à panierGourmandImmV1 panierGourmand.add(new TypeProdAlimentaire("thé blanc groseilles", 40.0, 10)); System.out.println("Panier Gourmand ImmV1 avec thé\n"+panierGourmandImmV1); // mais pas panierGourmandImmV1 lui-même /* * Le code ci-dessous provoque une erreur d'exécution * java.lang.UnsupportedOperationException */ panierGourmandImmV1.add(new ArrayList()); List panierGourmandImmV2 = List.of(new TypeProdAlimentaire("chocolat noir Perou", 10.0, 4000), new TypeProdAlimentaire("nougat Montélimar", 10.0, 3000)); System.out.println("Panier Gourmand ImmV2\n"+panierGourmandImmV2); /* * Le code ci-dessous provoque une erreur d'exécution * java.lang.UnsupportedOperationException */ //panierGourmandImmV2.add(new TypeProdAlimentaire("café Guatemala", 10.0, 3000)); } }