34
Cours de Java Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Cours de Java

Benjamin FAUCHERCubis-Helios Consulting

Page 2: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 2

Cours 1 : Les bases du Langage Java 1/2

• I. Introduction• II. Compilation• III. Rappel sur la POO• IV. Les classes Java• V. Syntaxe de base du Java

Page 3: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 3

I. Introduction : 1. Historique 1/2

• Java est un langage orienté objet qui s'inspire du langage C++. • mis au point en 1991 par James Gosling de Sun Microsystems, dans le but

d’être intégré dans des appareils électroménagers, afin de pouvoir les contrôler, de les rendre interactifs, et surtout de permettre leur communication

• Inclut dans un projet nommé Green, visant à créer une télécommande universelle (Star 7) comprenant un système d'exploitation capable de gérer l'ensemble des appareils électroménagers de la maison.

• reprend les caractéristiques principales du C++, en éliminant ses points difficiles, et en le rendant moins encombrant et plus portable

• baptisé dans un premier temps Oak (chêne) , puis rebaptisé Java en l'honneur de la boisson préférée des programmeurs, c'est-à-dire le café, dont une partie de la production provient de l'île Java.

Page 4: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 4

I.1 Historique 2/2• Apparition du Web à la même époque : rassemblement sur une même structure

des machines différentes => nécessité d’un langage capable de fonctionner sur chacune d'entre-elles => portabilité de Java.

• Le web était limité en bande passante: Java a donc été conçu pour être concis.• Ainsi, en 1994, l'équipe décida de mettre au point un navigateur (baptisé

HotJava) intégrant Java et capable de faire fonctionner des applets (des petites applications fonctionnant dans un navigateur). C'est ainsi que fin 1995 Java eut un terrible essor avec le soutien de Netscape, qui ne tarda pas à inclure Java dans son navigateur.

• Depuis sa création, Sun continue à faire évoluer le Java au travers du JDK.

Page 5: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 5

I.2 (Faux) Héritage du C++Le Java s’est inspiré de la syntaxe, néanmoins , il reste un langage à part entière

qui de plus diffère du C++ sur un certain nombre de concepts qui les opposent dans leur mode programmation : notions issues du C++ exclues de Java :

• Les pointeurs• La surcharge d'opérateurs ( +,- , / , * , = , [] , << , etc ... )• L'héritage multiple• La libération de mémoire est transparente pour l'utilisateur, gérée entièrement

par le Garbage Collector (il n'est plus nécessaire de créer des destructeurs)• Une meilleure gestion des erreurs ( Arborescence d'Exceptions )• Les chaines et les tableaux sont désormais des objets faisant partie intégrante

du langage

Toutefois Java est beaucoup moins rapide que le langage C++, il perd en rapiditéce qu'il gagne en portabilité.

Page 6: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 6

I.3 Domaines d’applications• 2 formes de programmes :

– Applications normales : programmes s’exécutant sous l’OS de la machine ~ programmes C ou C++

– Applets : application conçue pour être transférée sur Internet, exécutée par un navigateur qui prend en charge Java

• réutilisation d'un travail de programmation dans un grand nombre de domaines : API dans un grand nombre de domaine : interface graphique, multi-Threading, protocoles réseaux, accès aux BD, Web, XML, sécurité, cryptographie, traitement de l'image ...

• Le Java permet donc grâce à son API un gain de temps dans la conception, il reste néanmoins un langage peu performant en temps d’exécution pour des applications lourdes.

Page 7: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 7

II. Compilation1. Langage Compilé

Page 8: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 8

II.2 Langage interprété : Java 1/2

Page 9: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 9

II.2 Langage interprété : Java 2/2• Le java est donc un langage compilé, dont la « portabilité » réside au

niveau du bytecode (= jeu d’instructions optimisées ) : une fois le fichier source précompilé, n’importe quel système muni d’une Java Virtual Machine (JVM) peut alors l’exécuter.

• Les JVM peuvent être installer avec un Java Développement Kit, ou intégrés aux navigateurs Web.

• Cette particularité engendre une certaine sécurité des applications, puisque la JVM exécute les programmes, et veille à la portée des instructions ( moins de risque de Virus, pour des applications en ligne …)

• La lenteur du Java s’explique donc par le fait que la JVM doit traduire le bytecode, toutefois le Java reste relativement rapide par rapport aux autres langages interprétés.

Page 10: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 10

I.3 Comparaison avec d’autres langages

Java Smalltalk TLC Perl Shells C C++

Simple + + + + - + - + - -Orienté Objet + + - + - - +

Robuste + + + + + - -Sécurisé + + - + - + + - - -Interprété + + + + + - -

Dynamique + + + + + - - -Portable + + - + + - - -Threads + - - + - - -

Garbage Collector + + - - - - -Exceptions + + - + - - -

Performance Haute Moyenne Basse Moyenne Basse Très Haute Très Haute

Légende : + : présent - : absent + - : plus ou moins présent

Page 11: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 11

I.4 Compiler/Exécuter• Les fichiers sources sont écrits dans des fichiers d’extensions .java,

leur compilation s’effectue à l’aide de la commande « javac <fichierSource>.java », qui décrit les éventuelles erreurs de programmations …

• Si le code source contenu dans le fichier est correct, le compilateur javac (java-compiler) crée alors un fichier <fichierSource>.class contenant le bytecode correspondant.

• Pour exécuter le programme correspondant, il faut lancer la JVM par la commande « java <fichierSource>  »

• Les Applets peuvent également être compilées de la même manière, mais leur « exécution » se fait de manière différente…

Page 12: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 12

III. Rappel sur la POO :• Contrairement au C++, en java, un programme doit toujours être

orienté objet.• Nécessité d’un autre modèle que le modèle « linéaire » pour des

applications plus importantes => modèle objet (+ organisé)• Notion d’  « Abstraction » : on hiérarchise en composants auxquels

on attribut des capacités à différents niveaux . ex : une voiture peut être vue comme un ensemble composée de différent composants : moteur, carrosserie .. Eux-même composés d’autres composants…

• La POO est basée sur trois principes fondamentaux.: Encapsulation, Héritage et Polymorphisme.

Page 13: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 13

III.1 Encapsulation• Protège certaines données d’un objet, en définissant les entités qui pourront

être perçues de l’extérieur de l’objet, ainsi que la façon dont celles-ci pourront être manipulées

• Cette protection est nécessaire soit pour des raisons de confidentialités de données, soit (plus souvent) afin d’éviter des effets de bords.

• En java , l’encapsulation est basée sur notion de classe : modèle qui définit la structure et le comportement de tout objet instancié à partir de celle-ci. Classe = structure Logique ; Objet = structure physique

• Une classe permet de définir des variables (données ) et des méthodes (code agissant sur les données = fonctions ) qui seront similaires pour tout objet instancié.

• Ces méthodes ou varaibles peuvent être publiques ou privées selon s’il on souhaite qu’elle soit connue et utilisable de l’extérieur de la classe ou au contraire masquée.

Page 14: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 14

III.2 Héritage• Héritage = processus par lequel un objet reçoit des propriétés par un

autre de manière hiérarchique• Une classe qui hérite, reçoit toutes les variables ainsi que les

méthodes de sa classe mère. Elle est ensuite libre de redéfinir les méthodes héritée à sa guise, tout comme elle peut en ajouter de nouvelle ou de nouvelles variables.

• En java, l’héritage est arborescent, et une classe ne peut pas hériter de deux classes.

• En java, chaque classe hérite de la classe Object, qui est la racine de l’arborescence des classes Java.

Page 15: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 15

III.3 Polymorphisme• 2 types de polymorphismes :

– Polymorphisme ad-hoc : ajout de méthode de même nom mais ayant une signature différente (= surcharge)

– Polymorphisme d’héritage : Possibilité par le biais d’une redéfinition d’une méthode dans une classe fille, d’obtenir un comportement différent pour une méthode pour des objets

• Les objets d’une classe « TrucEnBois » héritant d’une « Truc » peuvent donc être amenée à lancer une méthode héritée en temps que « Truc », alors que cette méthode peut entre temps avoir été redéfinie.

Page 16: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 16

IV. Les Classes Java1. Déclaration 1/3

• Une classe java est définit par le mot-clé « class » suivie de son nomex : class Test { // Bloc d’instruction : variables et méthodes }

• La portée de la classe est déclarée par un spécificateur d’accès «  public » , qui déclare que la classe peut être vue par toutes les autres classes extérieures, dans le cas contraire, la classe sera inconnue des autres classes, et par conséquent exploitable que localement.

• Un fichier .java peut contenir autant de classes non-publique que possible

• Une classe ne peut contenir au maximum qu’une seule classe publique, le fichier .java doit alors porter le nom de cette classe publique.

• Inner-class : il est possible de déclarer une classe dans le bloc d’une autre classe, celle-ci est alors non-publique et n’est connue que de la classe « hôte ».

Page 17: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 17

IV.1 Déclaration 2/3• Pour créer un programme en java, on définit tout d’abord un certain

nombre de classe, dont ont spécifie les variables et méthodes ainsi que la portée. Tout ceci crée donc un système d’objet prêt à réagir.

• Nécessité d’un ensemble d’instructions déclencheur : celui – ci est contenu dans une méthode main()

• Un programme Java mettant en jeu plusieurs classes , ne doit comporter qu’un seul main() , celui – ci est alors déclaré dans la classe principale, et c’est celle – ci que l’on exécutera par la suite.

• La déclaration du main() en java est toujours de cette forme : public static void main(String args[]){ // block d’instructions }

• L’héritage d’une classe est déclaré par le mot-clé « extends »ex : public class A extends B { // block }

Page 18: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 18

IV.1 Déclaration 3/3Exemple : premier programme

/* ce programme doit être écrit dans un fichier :HelloWorld.java

*/class HelloWorld {

// Le programme commence par l’appel de main().public static void main(String args[]) {

// Affichage de la chaîne : «  Hello World !!! »System.out.println(«Hello World !!! »);

}}

Page 19: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 19

IV.2 Constructeur et Instanciation

• Un constructeur permet de définir un certain nombre d’instructions qui devront être déclenchées au moment de la création d’un objet.

• En java, il n’y a pas de destructeur, géré par le Garbage Collecteur• En java, on peut définir un certains nombre de constructeur pour une même

classe, ceux-ci ayant tous des signatures différentes.• Le constructeur ~ une méthode ayant le même nom que la classe :

ex : class Truc { Truc () { // instructions}Truc(int entier) { // instructions }

}• Instanciation d’un objet à partir d’une classe par le mot-clé « new » (allocation

dynamique ) :ex : new Truc(); ou new Truc(1);

• Avant, l’instanciation , un Objet vaut « null » ( non-utilisable )

Page 20: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 20

IV.3 Forme générale d’une classeEx : // Exemple.java<spécificateur d’accès classe> class Exemple {

<spécificateur d’accès> <type> variable1; <spécificateur d’accès> <type> variable2;…Exemple() { // instructions constructeur1 }Exemple(<paramètres>) { // instructions constructeur2 }… <spécificateur d’accès> <type> méthode1(<types> <paramètres>){

… / instructions méthode1return <valeur ayant le type <type> >;

} …

}

Page 21: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 21

IV.4 Spécificateurs d’accès 1/2• Les spécificateurs d’accès sont optionnels, néanmoins leur omission

engendre un accès par défaut.• Pour les classes : accès par les classes extérieures : mot-clé « public »• Pour les variables et méthodes :

– « public » : Visibilité par une classe extérieure ayant accès a la classe qui encapsule ces données.

– « private »  : Invisibilité par une classe extérieure ayant accès a la classe qui encapsule ces données.

– « protected » : Visibilité par les classes issues d’un même paquetage (= regroupement de classes), ainsi que par les classes filles

– Pas de spécificateur : Visibilité par les classes du même paquetage

Page 22: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 22

IV.4 Spécificateurs d’accès 2/2

privatePas de

Spécificateurprotected public

Même classe OUI OUI OUI OUI

Sur-classe du même paquetage

NON OUI OUI OUI

Classe autre que sous-classe dans le même

paquetageNON OUI OUI OUI

Sous-classe dans un autre paquetage

NON NON OUI OUI

Classe autre que sous-classe dans un autre

paquetageNON NON NON OUI

Page 23: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 23

IV.5 Le Mot clé « super »• Lorsqu’une classe B hérite d’une classe A et qu’elle redéfinit les méthode de

A, on peut toujours accéder aux méthode de A par le mot clé « super ». Ex :class A {

A(int a) { // instructions constructeur}public void methode1(){ // instructions }

}class B extends A {

B(int b) {super( b ); // le constructeur de B utilise le constructeur de A // instructions … } // surcharge de la méthode1public void methode1(){ super. methode1(); // Appel de méthode1de A // instructions … }

}

Page 24: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 24

V. Syntaxe de base du Java• La syntaxe du java est semblable à celle du C à 95%• Les noms de variables et de méthodes peuvent être composées de

lettres, chiffres (pas en 1ière lettre) , « _ » et « $ ».• En java, les types des variables sont soit des types de bases , soit des

Objets• 3 types de commentaires :

– // met en commentaire tout ce qui est écrit à droite– /* met en commentaire ce qui est entre les deux */– /** met en commentaire pour la javadoc */

• javadoc est un utilitaire livré avec le jdk pour générer en HTML automatiquement la javadoc, ou documentation sur l’API des classes crées (ajout de propriété : @author, @deprecated, @exception, @param, @return, @version …)

Page 25: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 25

V.1 Types de bases

Type caractéristique valeur défault taille min/max

boolean false/true false 1bit false/true

byte signé 0 1 octet -128 à 127

char unicode \u0000 2 octets \u0000 à \uFFFF

short signé 0 2 octets -32768 à 32767

int signé 0 4 octets -2*10^9 à 2*10^9

long signé 0 8 octets -9*10^18 à 9*10^18

float IEEE 754 0.0 4 octets 3,4*10^-38 à 3,4*10^38

double IEEE 754 0.0 8 octets 1,7*10^-308 à 1,7*10^308

Page 26: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 26

V.2 ConventionsLe java est sensible à la casse, et il existe des conventions pour le nommage des

variables, méthodes et classes :

• Nom de classes : commence par une majuscule, et si le nom vient d’un mot composé alors chaque partie du mot commence par une majuscule.Ex : BufferedOutputStream

• Nom de variables et de méthodes : commence par une minuscule, et si le nom vient d’un mot composé alors chaque partie du mot commence par une majuscule .

• Ex : removeElementAt(int index) variableDeNomQuelconque

• Convention respecté dans toutes l’API java (rares exceptions)

Page 27: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 27

V.3 Déclaration et initialisation de variables

• Les déclarations en java peuvent avoir lieu à n’importe endroit dans une méthode ou un constructeur et dans le corps d’une classe (par convention au début)

• Déclaration d’une variable : <type> nomDeLaVariable;• Déclaration d’une constante : final <type> nomDeLaConstante = <valeur>;• Le java permet systématiquement d’initialiser une variable lors de sa

déclaration Ex : // Test.java

class Test {final int indiceMax = 10; int indice = 2;String chaine = "Test "  ;Test ( ) {Object o2 = new Object(); … }

}

Page 28: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 28

V.4 Conversion de typeIl existe 2 cas : • Les 2 types sont compatibles et le type de destination est plus grand que le

type source : alors le Java permet une conversion automatique :Ex : int ent = 2; double doub = 3;

doub = ent;• Les 2 types sont incompatibles : alors il faut faire un « cast », qui signifie que

l’on est prêt à perdre de l’information dans notre conversionEx : int ent = 2; double doub = 3.2;

ent = (int)doub; // on « cast » doub en int• Ce principe est valable pour tout les types de bases , ainsi que pour les objets,

sous réserve que les types soient parents ( cast d’une classe fille dans le type d’une classe mère)

Page 29: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 29

V.5 Les Tableaux• Les tableaux en Java peuvent contenir n’importe quel type de

données : type de base ou Objet• Déclaration : <type> nomVariable[];• Une fois déclarée la variable pointe sur null; il faut donc allouer un

espace en mémoire pour le tableau.• Allocation de la mémoire : nomVariable = new <type>[<valeur>]• L’allocation initialise toutes les valeurs du tableau à la valeur par

défaut du type (null pour un Objet)• Les tableaux sont indexés de 0 à n-1 s’ils sont initialisés avec une

valeur n et on accède à leur donné de la sorte : nomVariable[<indice>]

• Tableau bidimensionnels : <type> nomVariable[][] = new <type>[i][j];

Page 30: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 30

V.6 Utilisation d’un Objet• Une fois un objet instancié, on peut utiliser toutes ses variables et méthodes

publiques de la manière suivante :Objet o = new Objet(); o.méthode(); int tmp = o.fonction(); o.variable = tmp; …

• A l’intérieur d’une classe, pour des raisons de masquage de données, il est parfois nécessaire de devoir préciser l’appartenance d’une variable ou méthode à l’objet courant, ceci se fait par le mot clé « this »Ex : // Exemple.javaclass Exemple {

int i;Exemple(int i) { this.i = i; }

}

Page 31: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 31

V.7 Boucles et instructions• Java fonctionne comme le C avec des blocks d’instructions { … }• Reprend également les instructions/boucles classiques :

– while (condition) {}– do { }while (condition);– for ( <déclaration et/ou initialisation>; <condition limite>;

<incrémentation> ) {…} : Ex : for (int i=1; i<3; i++){…}– if (condition) {} else {}– (condition)? {…} : {…}– Switch(expression) { case valeur1 : /*instructions*/ break;

default : /*instructions*/ }

Page 32: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 32

V.8 Opérateurs 1/2• Opérateurs arithmétiques pour les types numériques :

– +, -, * , / , %(modulo) : opérations classiques– ++ et -- : incrémentation et décrémentation ( Ex : ++i; et i++; )– +=, -=, *= , /= , %= : Opération puis affectation

• Opérateurs de comparaison :– == : test d’égalité– != : test d’inégalité– < , <= , > , >= : comparaisons

• Opérateurs logiques booléens :– & , | , ̂: ET , OU , OU exclusif– && , || : ET et OU avec circuit– ! , == , != : NON, EGAL à, DIFFERENT de

Page 33: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 33

V.8 Opérateurs 2/2• Opérateur d’affectation : «  =  »

Particularité en Java :Ex : int x,y,z; x = y = z = 100;

• Opérateur ? :expression1 ? expression2 : epression3Ex : public int abs( int i ) { return (i < 0 ? -i : i); }

• Concaténation de chaine de caractère avec « + » :Ex : int somme = 4;String sommeString = " la somme est égale à" + i+"  Euros.";

Page 34: Cours de Java - Freekarlaoui.free.fr/Site Epmi/Programmation/Cours/I... · Langage Java - Cours I : Les bases 1 9 II.2 Langage interprété : Java 2/2 • Le java est donc un langage

Langage Java - Cours I : Les bases 1 34

V.9 La classe Object• Tous les Objets héritent implicitement de la classe java.lang.Object,

qui contient un certain nombre de méthode comme les méthodes equals() et toString() qui peuvent être redéfinies dans tous les Objets

• La méthode equals(Object o) teste l’égalité de l’objet courant avec un autre objet passé en paramètre, le fait de redéfinir cette méthode dans un objet que l’on a créé permet de définir nos propres critère d’égalités entre nos objets. Ces propriétés sont utilisées par un certain nombre de méthodes utilitaire du java.

• La méthode toString() définit une forme d’affichage sous forme de String de l’objet courant. La redéfinir permet une fois pour toute de définir l’affichage d’un type d’objet, réutilisable ensuite :Ex : System.out.println(" affichage de l’objet : "+o);