Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Poo

679 vues

Publié le

Une piqûre de rappel humoristique pour certains de mes étudiants qui avaient des problèmes pendant le cours de Java avec les notions de classe et d'héritage.

Publié dans : Technologie, Formation
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Poo

  1. 1. POO
  2. 2. la p rog ram ma s'appuie sur la tion théorie orie des nté eo bje ensembles ts
  3. 3. ? ?? ça a l'air compliqué, comme ça....
  4. 4. Mais en fait, c'est assez simple... OO
  5. 5. Imaginez quelques fruits bien colorés...
  6. 6. En fait, ils peuvent être nombreux...
  7. 7. La théorie des ensembles nous permet de classer ces objets:
  8. 8. Par exemple en trouvant l'ensemble des fruits...
  9. 9. ou celui des fruits rouges
  10. 10. Ou celui des pommes...
  11. 11. Gribouillages à part, on constate: que l'ensemble des fruits contient l'ensemble des fruits rouges qui contient l'ensemble des pommes
  12. 12. OO ⊂ ⊂ Mathématiquement,
  13. 13. Euh, j'm'ai trompé de cours, moi ? OO Non, non! Rassures-toi...
  14. 14. OO Et ça, ça t'évoque quelque chose?
  15. 15. Ce ne sont plus des ensembles de fruits, de fruits rouges ou de pommes... ... mais c'est le même principe!
  16. 16. Et c'est tout comme ça en programmation orientée objets... ...y compris pour les exceptions!
  17. 17. Du coup, tu comprends le problème ici... try {  /* ... */ } catch(Exception e) { Euh? Bof...  /* ... */ } catch(ArithmeticException e) {  /* ... */ }
  18. 18. try { intercepte les exceptions  /* ... */ de la classe Exception } catch(Exception e) {  /* ... */ } catch(ArithmeticException e) {  /* ... */ } intercepte les exceptions de la classe ArithmeticException mais seulement celles qui n'ont pas déjà été interceptées, bien sûr...
  19. 19. Or... try { intercepte les exceptions  /* ... */ de la classe Exception } catch(Exception e) {  /* ... */ } catch(ArithmeticException e) {  /* ... */ } intercepte les exceptions de la classe ArithmeticException mais seulement celles qui n'ont pas déjà été interceptées, bien sûr...n
  20. 20. Or... try { intercepte les exceptions  /* ... */ de la classe Exception } y compris celles de la catch(Exception e) { classe  /* ... */ ArithmeticException! } catch(ArithmeticException e) {  /* ... */ } Du coup, ce gestionnaire ne peut jamais être utilisé!
  21. 21. Du coup la solution est simple! try {  /* ... */ } catch(ArithmeticException e) {  /* ... */ Il faut mettre les } gestionnaires du plus catch(Exception e) { restrictif au plus générique  /* ... */ }
  22. 22. Au delà de la gestion des exceptions.. ce qui compte vraiment c'est l'idée... que les objets appartiennent à des classes Et que cesclasses sont incluses dans d'autres classes
  23. 23. c'est la notion d' héritage , qui est fondamentale en programmation orientée objets compris ok oui

×