Java and Object-Oriented Programming

Download Report

Transcript Java and Object-Oriented Programming

Programmation par Objets et Java

Concepts de base

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

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

Concepts de base en programmation par objets

– Classe – Instance – Message – Méthode – Héritage – Interface (Java)

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 x int y Methods getX setX(int newX) getY setY(int newY) toString()

 

Instance

Créée par les classes – Forme spéciale : constructeur Activée par les messages Point.class

State int x int y Methods getX() setX(int newX) getY() setY(int newY) toString() new aPoint x = 5 y = 10

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 State Point.class

int x int y Methods getX() setX(int newX) getY() setY(int newY) toString() aPoint.getClass() aPoint x = 5 y = 10 setX(20) getClass() Ma classe connaît mon comportement

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 setDir(0) setX( 5) toString() State Point.class

int x int y Methods getX() setX(int newX) getY() setY(int newY) toString() inheritsFrom Turtle.class

State int dir int hop Methods getDir() setDir (int newDir) getHop() moveTo(Point aPoint) toString() aTurtle x = 5 y = 10 dir = 90 hop = 5

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

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

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

Le Langage Java

 Syntaxe  Types primitifs  Structures de contrôle  Definition de classes  Création d’instances  Exécution de programmes

Définition d’une classe

package examples; import java.util.*;

/** * This type was created in VisualAge. */

public class Point { protected int x = 5; private int y; // comments public 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();} }

Types de données primitifs Mot-clé

byte short int long float double char boolean

Description Taille/Format

Byte-length integer Short integer

(integers)

8-bit two's complement 16-bit two's complement Integer Long integer 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)

A single character A boolean value ( true or false ) 16-bit Unicode character true or false

Portée des variables

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

Enoncés de contrôle

 for  while  if then else  switch

                 

Exemple d’énoncé de contrôle boucle 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

()); } }

Création d’instances

         /** * Tortue constructor comment.

*/ public Tortue(int x, int y) {

this

(); // this.setX(x); this.setY(y); // // } super();

this.x

= x; setX(x);

Enoncé de branchement

 break  continue  return

                      

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");

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();  }

Programmes Java

É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

Ressources en Java

 http://java.sun.com

– Tutoriel – JavaDoc: APIs  www.javaworld.com