les fondements du langage java1 sun services java programming language copyright 2005 k.allem all...
TRANSCRIPT
Les fondements du langage Java 1
Sun Services
Java™ Programming Language
Copyright 2005 K.ALLEM All Rights Reserved
Les fondements du langage Java 2
Principales ressources
Au cœur de Java Java comment programmer Thinking in Java Les cahiers du programmeur Java 1.4 et 5.0
Les fondements du langage Java 3
Un exemple simple…
public class ExempleSimple
{
public static void main (String [] args )
{
System.out.println( “ Java n’ est pas seulement une île d’indonesie…!! “);
}
}
public : est un modificateur d’accès
class : dans un programme Java, tout doit se trouver dans un classe
static, void : ils sont nécessaires à la compilation
main : chaque application Java doit disposer d’une méthode main
{ } : les accolades sont employés pour délimiter les blocs du programme Java
System.out.println( “… “ ) ; : est une instruction Java ( l’equivalent d’un phrase de français)
Les fondements du langage Java 4
Compilation et exécution
Le fichier ExempleSimple.java
Compilation : javac ExempleSimple.java
on obtient ExempleSimple.class
Exécution : java ExempleSimple
Les fondements du langage Java 5
Commentaires…
Ils n’apparaissent pas dans le programme exécutable et ils servent pour documenter un programme
// ceci est un commentaire avec une seule ligne
/*
Ceci est un commentaire
de plusieurs lignes
*/
Les fondements du langage Java 6
Types de données
Java est un langage fortement typé (le type de chaque
variable doit être déclaré)
Il existe 8 types primitifs (prédéfinies): Le type entier (4) Le type à virgule flottante (2) Le type caractère (1) Le type booléen (1)
Les fondements du langage Java 7
Les types entiers
Le type entier représente les nombres sans partie décimale.
Java dispose 4 types:
long 8 octets -9 223 372 036 854 775 808 à
9 223 372 036 854 775 807
int 4 octets -2 147 483 648 à 2 147 483 647
short 2 octets -32 768 à 32 767
byte 1 octets -128 à 127
Les fondements du langage Java 8
Le types à virgule flottante
Le type à virgule flottante exprime les nombres réels disposant
d’une partie décimale
float 4 octets +/- 10-45 à +/- 1038
double 8 octets +/- 10-323 à +/- 10308
Les fondements du langage Java 9
Le type caractère (char)
' H ' est un caractère
" H " est une chaîne contenant un seul caractère
Les valeurs littérales de type caractère se
notent entre apostrophes (')
Les fondements du langage Java 10
Le type booléen (boolean)
• il peut avoir deux valeurs, false ou true
• Il est employé pour l’évaluation de conditions logiques
Les fondements du langage Java 11
Les variables…
Comment déclarer une variable?
En Java toute variable a un type
Syntaxe : type variable ;Exemples : double salaire ;
long populationDuMonde;boolean terminé ; int i, j ; // correct mais pas recommandé
Attention java est sensible à la casse et à l’usage des mots clés
Les fondements du langage Java 12
Affectations et initialisations
Comment initialiser une variable?Une variable déclarée devra être initialisée à l’aide d’une instruction d’affectation
Comment affecter une variable?L’affectation d’une variable déclarée se fait à l’aide du symbole d’égalité (=)
Exemple : int nombreEnfants; // cela est une déclaration nombreEnfants = 3; // cela est une affectation
int nombreEnfants = 3; // cela est une initialisation
Les fondements du langage Java 13
Les constantes…
final : c’est un mot clé qui sert à designer une constante public class ExempleSimple
{public static void main (String [] args ) {
final ……System.out.println( “ Java n’ est pas seulement une île d’indonesie “);
}}
final signifie qu’on affecte une valeur à la variable une seule fois, et unefois pour toutes.static & final créent une constante qui est accessible à plusieurs méthodes de la même classe
Les fondements du langage Java 14
Les opérateurs
Les opérateurs habituels (+ - * / )
La fonction mod : le reste d’une division entière
Diviser un entier par 0 déclenche une exception
L’instruction x += 2; équivalent à x = x + 2;
Les fondements du langage Java 15
Opérateurs : incrémentation et décrémentation
• Incrémenter : x++ c’est ajouter 1 à la valeur courante
• Décrémenter : x-- c’est retrancher 1 à cette valeur
• Exemple : int m = 5;
int n = 5;
int a = 2 * ++m; //a = 12, m =6
int b =2 * n++; // b = 10,
C++ ou ++C ??
Les fondements du langage Java 16
Opérateurs arithmétiques
Les fondements du langage Java 17
Opérateurs logiques
Les fondements du langage Java 18
Opérateurs de comparaison
Les fondements du langage Java 19
Comprendre la portée
• Les règles de portée déterminent où est reconnue une variable dans un programme.
Les variables appartiennent à deux catégories de portée principales :
• Variables globales : Variables reconnues dans toute une classe.
• Variables locales : Variables reconnues uniquement dans le bloc de code où elles sont déclarées.
Les fondements du langage Java 20
Exemple :class Portée{
int x = 0;void méthode1() {
int y; y = x; // Cela fonctionne. méthode1 peut accéder à y.}void méthode2() {
int z = 1; z = y; // Cela ne fonctionne pas : // y est définie hors de la portée de méthode2.
}}
Les fondements du langage Java 21
La boucle while
• La boucle while est utilisée pour créer un bloc de code qui sera exécuté tant qu’une condition particulière est satisfaite.
• Voici la syntaxe générale de la boucle while :
while ( <instruction de condition booléenne> )
{
<code à exécuter tant que la condition est vraie>
}
Les fondements du langage Java 22
Exemple
int x = 0; //Initialise x à 0.
while (x < 10) { //Instruction de condition booléenne.
System.out.println("Bouclage"); //Imprime "Bouclage" une fois.
x++; //Incrémente x pour l’itération suivante.
}
Les fondements du langage Java 23
La boucle for
• La boucle for est la plus puissante des constructions de boucles.
• Voici la syntaxe générale d’une boucle for :
for ( <initialisation> ; <condition booléenne> ; <itération> )
{
<code d’exécution>
}
Les fondements du langage Java 24
Exemple
for (int x = 0; x < 10; x++)
{
System.out.println("Bouclage");
}
Les fondements du langage Java 25
Un peu de vocabulaire…
Une classe est le modèle ou le matrice del’objet Construire un objet à partir d’une classe, c’est créer une instance de cette classe L’encapsulation consiste à combiner les attributs et les méthodes dans l’objet et àdissimuler l’implémentation des donnéesaux utilisateurs de l’objet
Les fondements du langage Java 26
Les objets
Identifier les trois caractéristiquement d’un objet : Le comportement de l’objet :Quelles méthodes peut on appliquer à cet objet ? L’état de l’objet :Comment l’objet réagit-il lorsqu’on lui applique ces
méthodes ? l’identité de l’objet : Comment l’objet se distingue-t-il des autres qui peuvent avoir le même comportement et le même état ?
Les fondements du langage Java 27
Objets et variables objets
• Pour construire des nouvelles instances on utilise les constructeurs
• Un constructeur est une méthode spéciale dont le but est de construire et d’initialiser les objets
• Un constructeur a toujours le même nom que la classe
• Pour construire un objet, on combine le constructeur avec l’opérateur newExemple : new Date() // pour construire un objet Date
Les fondements du langage Java 28
Objets et variables objets
Date anniversaire = new Date( ); /*on stocke l’objet construit dans une variable*/
Il existe une différence entre les objets et les variables objets
Date dateLimite; /* on déclare une variable objet qui peut référencer des objets de type Date,
dateLimite n’est pas un objet et ne référence encore aucun objet */
dateLimite = new Date( ) ; // on doit initialiser la variable dateLimite
dateLimite = anniversaire; /* la variable dateLimite référence un objet existant, une autre possibilité pour initialiser la variable dateLimite */
dateLimite = null; // la variable objet ne référence aucun objet
Les fondements du langage Java 29
• Conclusions…
Les fondements du langage Java 30
Java est orienté objet…
• Java a toutes les caractéristiques d’un langage objet; il permet de définir des classes comportant des descriptions d’attributs (variables) et d’opérations (méthodes)utilisables sur des objets.
• Les objets communiquent entre eux et réagissent aux événements issus de leur environnement par le biais de messages.
Les fondements du langage Java 31
Java est fortement typé…
• Toute donnée manipulée par Java doit être typée. Le type peut être soit un type de base (int, float, char, boolean...) soit un nom de classe du JDK ou créée par l’utilisateur.
Les fondements du langage Java 32
Java est déclaratif…
• Tout objet ou variable doit être déclaré avant d’être manipulé. La déclaration comporte de manière classique un type et l’identificateur de donnée.
int nb = 10;
Les fondements du langage Java 33
Java est structuré…
• Structuré en packages (ensembles de classes), classes et méthodes.
• Lors de l’exécution, les instructions de contrôle de flot (branchements, boucles...) sont elles mêmes structurées.
for (i=0; i < 10; i++) {if (i == 5)
{System.out.println(“milieu!”);}
}
Les fondements du langage Java 34
Java est... beau !
• Java est très agréable (à programmer) et permet de développer vite et simplement des applications complexes.
Les fondements du langage Java 35
Architecture d’un programme Java
• Programme Java = ensemble de classes pouvant être regroupées en packages
• Classe = attributs + méthodes
• Méthode = unique unité de code
Les fondements du langage Java 36
Programme Java = ensemble de classes pouvant être regroupées en packages
• Java est un langage orienté objet. Le composant de base d’un programme Java est donc la classe, qui agit comme modèle permettant de “fabriquer” des objets. Les classes peuvent être regroupées en modules appelés packages.
Les fondements du langage Java 37
Classe = attributs + méthodes
• Un classe comporte un ensemble de définitions d’attributs et un ensemble de méthodes que l’on pourra utiliser sur tous les objets de cette classe.
Les fondements du langage Java 38
Méthode = unique unité de code
• Le code source d’un programme Java doit se situer uniquement à l’intérieur du corps des méthodes
Les fondements du langage Java 39
Exemple:public class Point { // Les attributs private int x; private int y;
// Les méthodes public void setXY(int px, int py)
{ x = px; y = py; } public int getX() { return x; } public int getY()
{ return y;
}}
Les fondements du langage Java 40
Les tableaux
• En Java les tableaux sont des objets référencés. Le type tableau est assimilable à une classe
• Déclaration d’un tableau
int tableau1[ ];
int[ ] tableau2;
int matrice[ ][ ];
• Un tableau doit être alloué dynamiquement, comme tout objet Java (à l’aide de l’opérateur new)
int tab[10]; // ne compile pas
Les fondements du langage Java 41
Les tableaux• Allocation et initialisation
int tab1[ ] = new int[10];int mat[ ][ ] = new int[4][5];int tab2[ ] = {1,2,3,4}
- Un tableau n’est pas un type élémentaire. Une variablede type tableau est donc une référence sur un tableau. pour créer ce tableau nous utilisons l’opérateur new. C’est une allocation dynamique.
- Il est également possible de créer le contenu d’un tableau lors de la déclaration en fournissant la liste complète de ses éléments.
Les fondements du langage Java 42
Les tableaux
• Utilisation
int tab1[ ] = new int[10];...// utilisations correctestab1[0] = 100;tab1[1] = 200;// mais ceci n’est pas correcttab1[10] = 1000;
Les fondements du langage Java 43
Les tableaux
- En Java les tableaux sont toujours indexés par des int et le premier élément commence à l’indice 0.
- tab[tab.length - 1] est le dernier élément du tableau
- Si le tableau est alloué avec une taille inférieure à zéro ou si on tente d’accéder un élément ne se trouvant pas entre le premier et le dernier élément compris, une exception est générée.