Programmation par Objets et Java Concepts de base.
-
Upload
aristide-duval -
Category
Documents
-
view
120 -
download
3
Transcript of Programmation par Objets et Java Concepts de base.
![Page 1: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/1.jpg)
Programmation par Objetset
Java
Concepts de base
![Page 2: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/2.jpg)
Objectifs Apprendre les rudiments de Java
– Concepts– Le language comme tel– Idiosyncrasies
Partager des – Concepts – Vocabulaire– Expertise
Vers – JavaBeans– La programmation visuelle– Les schémas de conception– La refactorisation
![Page 3: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/3.jpg)
Contenu
La programmation par objets Le langage Java Les classes et opérations de base en Java Interfaces graphiques Construire et déployer des applications Stocker et manipuler des groupes d’objets Documentation en Java
![Page 4: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/4.jpg)
Concepts de base en programmation par objets
– Classe– Instance– Message– Méthode– Héritage
– Interface (Java)
![Page 5: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/5.jpg)
Classe Comportement d’une classe
– Création des objects (instance)
– java.lang.Class
Une classe est un moule– Structure de l’état de ses instance
– Comportement de ses instances
Point.class
State int xint y
MethodsgetXsetX(int newX)getYsetY(int newY)toString()
![Page 6: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/6.jpg)
Instance Créée par les classes
– Forme spéciale : constructeur Activée par les messages
new
aPoint
x = 5y = 10
Point.class
State int xint y
MethodsgetX()setX(int newX)getY()setY(int newY)toString()
![Page 7: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/7.jpg)
Messages et Méthodes Les comportements d’une instance sont activés par
transmission de messages Une méthode spécifie et implémente ce comportement
aPoint
x = 5y = 10
Point.class
State int xint y
MethodsgetX()setX(int newX)getY()setY(int newY)toString()
aPoint.getClass()setX(20)
Ma classe connaît mon comportement
getClass()
![Page 8: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/8.jpg)
Héritage Pour spécialiser une classe
– en ajoutant une méthode
– en spécialisant une méthode
Pour factoriser les structures et les comportements communs
Point.class
State int xint y
MethodsgetX()setX(int newX)getY()setY(int newY)toString()
Turtle.class
State int dir int hop
Methods getDir() setDir (int newDir) getHop() moveTo(Point aPoint) toString()
inheritsFrom
aTurtle
x = 5y = 10dir = 90hop = 5
setX( 5)
setDir(0)
toString()
![Page 9: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/9.jpg)
Héritage multiple ?
L’héritage multiple est très difficile à gérer
en Java, – héritage simple
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
![Page 10: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/10.jpg)
Interface Une classe doit implanter les méthodes spécifiées par
l’interface
Un moyen de retarder le choix de l’implémentation réelle d’un objet à l’exécution
![Page 11: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/11.jpg)
Questions fondamentales des langages à objets
Est-ce que tout est objet ?– en Java, non
• Il existe des types primitifs: int…
Est-ce qu’une classe est un objet ? – En Java, “pas aussi flexible”– En Smalltalk, complètement modifiable dynamiquement
Héritage simple versus multiple– En Java, héritage simple + interfaces
![Page 12: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/12.jpg)
Le Langage Java
Syntaxe Types primitifs Structures de contrôle Definition de classes Création d’instances Exécution de programmes
![Page 13: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/13.jpg)
Définition d’une classepackage examples;import java.util.*;/** * This type was created in VisualAge. */ public class Point {
protected int x = 5;private int y;
// commentspublic Point() { super(); }
public int getX() { return x;}public int getY() { return y;}public void setX(int newValue) { this.x = newValue;}public void setY(int newValue) { this.y = newValue;}
public String toString() { return "Point(" + this.getX() + ", " + this.getY();}}
![Page 14: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/14.jpg)
Types de données primitifs
Mot-clé Description Taille/Format
(integers)byte
Byte-length integer 8-bit two's complement
short Short integer 16-bit two's complementint Integer 32-bit two's complementlong Long integer 64-bit two's complement
(real numbers)float
Single-precision floating point 32-bit IEEE 754
doubleDouble-precision floating point 64-bit IEEE 754
(other types)char A single character
16-bit Unicode character
booleanA boolean value (true or false) true or false
![Page 15: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/15.jpg)
Portée des variables
![Page 16: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/16.jpg)
Opérateurs Arithmétiques (+, -…) Relationels (<…) et conditionnels ( &&…) Décalages (>>…) et Logiques (&…) affectations (=…) Autres
– Raccourci if-else• op1 ? op2 : op3
– Opérateur de vecteur []• float[] arrayOfFloats = new float[10];
– Opérateur “.” • pour accéder aux variables d’instance et aux variables de classe
– Operateur de typage (type) cast– Opérateur de création new– Opérateur instanceof
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html
![Page 17: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/17.jpg)
Enoncés de contrôle
for while if then else switch
![Page 18: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/18.jpg)
Exemple d’énoncé de contrôleboucle for
public static void exampleFor() { //example 1 int[] arrayOfInts = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127}; for (int i = arrayOfInts.length; i >= 0; i = i - 1)
// for (int i = arrayOfInts.length; --i >= 0;) { System.out.println(arrayOfInts[i]); } //example 2 Vector v = new Vector(); v.addElement(new Point(1, 2)); v.addElement(new Point(3, 4)); v.addElement(new Point(5, 6)); for (Enumeration enum = v.elements(); enum.hasMoreElements();) { System.out.println(enum.nextElement()); } }
![Page 19: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/19.jpg)
Création d’instances
/** * Tortue constructor comment. */ public Tortue(int x, int y) { this(); // super();
// this.x = x; this.setX(x); // setX(x); this.setY(y); }
![Page 20: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/20.jpg)
Enoncé de branchement
break continue return
![Page 21: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/21.jpg)
Gestion des exceptions public void writeList() { PrintWriter out = null; try { System.out.println("Entering try statement"); out = new PrintWriter(new FileWriter("OutFile.txt")); for (int i = 0; i < size; i++) out.println("Value at: " + i + " = " + victor.elementAt(i)); } catch (ArrayIndexOutOfBoundsException e) { System.err.println("Caught ArrayIndexOutOfBoundsException: " + e.getMessage()); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } finally { if (out != null) { System.out.println("Closing PrintWriter"); out.close(); } else { System.out.println("PrintWriter not open"); } } }
![Page 22: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/22.jpg)
Exécution d’un programme
/** * Starts the application. * @param args an array of command-line arguments */ public static void main(java.lang.String[] args) { PieceExamples.exampleFor(); }
![Page 23: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/23.jpg)
Programmes Java
![Page 24: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/24.jpg)
Éléments d’un programme Java JDK / JRE
– 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
Compilation d’un programme Java
Exécution d’un programme Java– Stand-alone– browsers
![Page 25: Programmation par Objets et Java Concepts de base.](https://reader035.fdocuments.net/reader035/viewer/2022062511/551d9da5497959293b8d75ce/html5/thumbnails/25.jpg)
Ressources en Java
http://java.sun.com– Tutoriel– JavaDoc: APIs
www.javaworld.com