Introduction aux Objets et à Java
Transcription
Introduction aux Objets et à Java
Introduction aux Objets et à Java F. Mallet [email protected] http://deptinfo.unice.fr/~fmallet/java/gse.html 2010/2011 F. Mallet - GSE 4 0-1 Introduction aux objets et à Java Bibliographie et Webographie « Informatique Industrielle et Java » F. Mallet et F. Boéri, Dunod 2003 http://www.iutenligne.net/ressources/informatique_indus/Mallet/JavaII/ « Conception objet en Java avec BlueJ: Une approche interactive », 4ème édition D. Barnes et M. Kolling, Pearson Education 2009 « Penser en Java » », 2ème Edition B. Eckel, http://penserenjava.free.fr/ Documentation en ligne (API et tutoriels) Sun, http://java.sun.com/javase/reference/api.jsp 2010/2011 F. Mallet - GSE 4 2 Introduction aux objets et à Java Plan du cours Introduction oduc o Créer ses premières classes Réutilisation: héritage et composition Patrons de conception: Décoration, MVC Interface avec le langage C: JNI Communication avec l’extérieur: sockets 2010/2011 F. Mallet - GSE 4 3 Introduction aux objets et à Java Chapitre I – Introduction aux objets Objectifs Objec s Définir la programmation orientée-objet • Historique • Avantages Notions N ti essentielles ti ll • Type, Classe/objet, instanciation • Variable, Référence • Champ/attribut, méthode Eléments syntaxiques du langage 2010/2011 F. Mallet - GSE 4 4 Introduction aux objets et à Java La programmation impérative Programmation g concevoir (algorithme) et réaliser (programme) pour une exécution automatique Algorithme Impératif: succession d’ordres • Pour calculer le maximum, je parcours les éléments un à un ett je j lles compare à l’élé l’élémentt supposé é maximum i Déclaratif • max(T) = { m | t T, t m } 2010/2011 F. Mallet - GSE 4 5 Introduction aux objets et à Java Example de la factorielle Impératif Déclaratif Itératif long factorielle(int n) { long res = 1; for(int i = 2; i<n; i++) { res = res * i; } return res; } Récursif long factorielle(int n) { if(n==0) return 1; return n*factorielle(n-1); } 2010/2011 Fonctionnel / Applicatif (factorielle (n) (( ((zero? ? n) ) 1) (* n (factorielle (- n 1))) Logique factoriel(0,1):!. factoriel(N,T):N1 is N-1 N 1, factoriel(N1,T1), T is T1*N. F. Mallet - GSE 4 6 Introduction aux objets et à Java La programmation orientée-objet orientée objet La POO g guide la conception p p par Un ensemble de concepts (abstraction, modularité, encapsulation, polymorphisme) Des langages et des outils qui supportent ces concepts Ses forces (supposées) Du code (plus) facile à maintenir Reflète plus finement les objets du monde réel Plus stable : un changement s’applique à un soussystème facile à identifié et isolé du reste du système 2010/2011 F. Mallet - GSE 4 7 Introduction aux objets et à Java Historique Simula 61-67 : Dahl et Nygaard Smalltalk 72 : A. Kay C++ 81-86 : Stroustrup Eiffel Eiff l 85 : B B. M Meyer Java 94-95 : J. Gosling/Sun Ruby 95 : Y. Y "Matz" Matsumoto C# 2000 : Microsoft http://www.simula.no http://www.smalltalk.org http://www.eiffel.com http://java.sun.com htt // http://www.ruby-lang.org b l http://www.learn-c-sharp.com Turing Award 2001 à Dahl et Nygaard 'for their role in the invention of OOP, the most widely used programming i model d l ttoday'. d ' 2010/2011 F. Mallet - GSE 4 8