Programmation par Objets et Java Concepts de base
Programmation par Objets et Java Concepts de base
Objectifs v Apprendre les rudiments de Java – Concepts – Le language comme tel – Idiosyncrasies v Partager des – Concepts – Vocabulaire – Expertise v Vers – – Java. Beans La programmation visuelle Les schémas de conception La refactorisation
Contenu La programmation par objets v Le langage Java v Les classes et opérations de base en Java v Interfaces graphiques v Construire et déployer des applications v Stocker et manipuler des groupes d’objets v Documentation en Java v
Concepts de base en programmation par objets – Classe – Instance – Message – Méthode – Héritage – Interface (Java)
Classe v Comportement d’une classe – Création des objects (instance) – java. lang. Class v Une classe est un moule – Structure de l’état de ses instance – Comportement de ses instances Point. class State int x int y Methods get. X set. X(int new. X) get. Y set. Y(int new. Y) to. String()
Instance v Créée par les classes – Forme spéciale : constructeur v Activée par les messages Point. class State int x int y Methods get. X() set. X(int new. X) get. Y() set. Y(int new. Y) to. String() a. Point new x=5 y = 10
Messages et Méthodes v v Les comportements d’une instance sont activés par transmission de messages Une méthode spécifie et implémente ce comportement Point. class State int x int y Methods get. X() set. X(int new. X) get. Y() set. Y(int new. Y) to. String() a. Point. get. Class() a. Point x=5 y = 10 set. X(20) get. Class() Ma classe connaît mon comportement
Héritage v Pour spécialiser une classe set. X( 5) – en ajoutant une méthode – en spécialisant une méthode v Pour factoriser les structures et les comportements communs Point. class State int x int y Methods get. X() set. X(int new. X) get. Y() set. Y(int new. Y) to. String() Turtle. class inherits. From set. Dir(0) State int dir int hop Methods get. Dir() set. Dir (int new. Dir) get. Hop() move. To(Point a. Point) to. String() a. Turtle x=5 y = 10 dir = 90 hop = 5
Héritage multiple ? v L’héritage multiple est très difficile à gérer v en Java, – héritage simple v Pour obtenir un comportement équivalent à l’héritage multiple – Interface • • un ensemble de signatures de méthode c’est une spécification plus facile à gérer Vérification de type
Interface v Une classe doit implanter les méthodes spécifiées par l’interface v Un moyen de retarder le choix de l’implémentation réelle d’un objet à l’exécution
Questions fondamentales des langages à objets v Est-ce que tout est objet ? – en Java, non • Il existe des types primitifs: int… v Est-ce qu’une classe est un objet ? – En Java, “pas aussi flexible” – En Smalltalk, complètement modifiable dynamiquement v Héritage simple versus multiple – En Java, héritage simple + interfaces
Le Langage Java Syntaxe v Types primitifs v Structures de contrôle v Definition de classes v Création d’instances v Exécution de programmes v
Définition d’une classe package examples; import java. util. *; /** * This type was created in Visual. Age. */ public class Point { protected int x = 5; private int y; // comments public Point() { super(); } public int get. X() { return x; } int get. Y() { return y; } void set. X(int new. Value) { this. x = new. Value; } void set. Y(int new. Value) { this. y = new. Value; } public String to. String() { return "Point(" + this. get. X() + ", " + this. get. Y(); } }
Types de données primitifs Mot-clé Description Taille/Format (integers) byte Byte-length integer short Short integer int Integer long Long integer float double 8 -bit two's complement 16 -bit two's complement 32 -bit two's complement 64 -bit two's complement (real numbers) Single-precision floating point Double-precision floating point 32 -bit IEEE 754 64 -bit IEEE 754 (other types) char A single character 16 -bit Unicode character boolean A boolean value (true or false) true or false
Portée des variables
Opérateurs v v v Arithmétiques (+, -…) Relationels (<…) et conditionnels ( &&…) Décalages (>>…) et Logiques (&…) affectations (=…) Autres – Raccourci if-else • op 1 ? op 2 : op 3 – Opérateur de vecteur [] • float[] array. Of. Floats = new float[10]; – Opérateur “. ” • pour accéder aux variables d’instance et aux variables de classe – Operateur de typage (type) – Opérateur de création new – Opérateur instanceof v cast http: //java. sun. com/docs/books/tutorial/java/nutsandbolts/operators. html
Enoncés de contrôle for v while v if then else v switch v
Exemple d’énoncé de contrôle boucle for v v v public static void example. For() { //example 1 int[] array. Of. Ints = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127}; for (int i = array. Of. Ints. length; i >= 0; i = i - 1) // { v System. out. println(array. Of. Ints[i]); v } //example 2 Vector v = new Vector(); v. add. Element(new Point(1, 2)); v. add. Element(new Point(3, 4)); v. add. Element(new Point(5, 6)); for (Enumeration enum = v. elements(); enum. has. More. Elements(); ) { System. out. println(enum. next. Element()); } v v v for (int i = array. Of. Ints. length; --i >= 0; ) }
Création d’instances v v v v v /** * Tortue constructor comment. */ public Tortue(int x, int y) { this(); // // this. set. X(x); // this. set. Y(y); } super(); this. x = x; set. X(x);
Enoncé de branchement break v continue v return v
Gestion des exceptions v v v v v v public void write. List() { Print. Writer out = null; try { System. out. println("Entering try statement"); out = new Print. Writer(new File. Writer("Out. File. txt")); for (int i = 0; i < size; i++) out. println("Value at: " + i + " = " + victor. element. At(i)); } catch (Array. Index. Out. Of. Bounds. Exception e) { System. err. println("Caught Array. Index. Out. Of. Bounds. Exception: " + e. get. Message()); } catch (IOException e) { System. err. println("Caught IOException: " + e. get. Message()); } finally { if (out != null) { System. out. println("Closing Print. Writer"); out. close(); } else { System. out. println("Print. Writer not open"); } } }
Exécution d’un programme v v v v /** * Starts the application. * @param args an array of command-line arguments */ public static void main(java. lang. String[] args) { Piece. Examples. example. For(); }
Programmes Java
Éléments d’un programme Java v JDK / JRE – – – v JDK 1. 0 (inspiré de C++) JDK 1. 1 (inspiré de Smalltalk) JDK 1. 2 (Intégration de JFC (Swing, Collections), Security…) JDK 1. 3 (Optimization…) JDK 1. 4 (Libraires…) JDK 1. 5 (contrôle et gestion de la JVM, performance, look and feel…) Code Java – – Packages Fichiers: . java, . class, . jar, . manifest Autres ressources: . properties Classpath v Compilation d’un programme Java v Exécution d’un programme Java – Stand-alone – browsers
Ressources en Java v http: //java. sun. com – Tutoriel – Java. Doc: APIs v www. javaworld. com
- Slides: 25