Les mots
Langage composé de mots de
l'alphabet de a à z, de A à Z et de 0 à 9
Booléens représentés par les valeurs
true et false
Constantes caractère représentées entre
simples cotes ('a', 'z', ...), constantes chaîne de caractères entre guillemets
("abc'(-678")
Caractères // pour une mise en
commentaire jusqu'au bout de la ligne, /* ... */ pour une mise en commentaire sur
plusieurs lignes
Les types
Types prédéfinis :
- boolean : booléen
- char : caractère
- byte : entier signé 8 bits
- short : entier signé 16 bits
- int : entier signé 32 bits
- long : entier signé 64 bits
- float : réel 32 bits
- double : réel 64 bits
Une variable déclarée final est
constante.
Exemples de déclaration :
int indice ;
final double valeur = 2.9 ;
Les tableaux
Syntaxe :
char tab[] =
new char[100] ;
-> définition d'un tableau de 100
caractères
double
mat[][] = new double[4] [4] ;
-> définition d'un tableau à deux
indices de 4x4 doubles
Les
opérateurs
Identiques à ceux du C/C++ :
Numériques : +, -, *, \, %
Binaires : & , |, ^, >>,
<<, <<<, >>>
Comparaison : >, <, >=, <=,
==, !=
Les
instructions de contrôle d'exécution
Identiques à celles du C/C++ :
if ( condition ) { ... } ;
switch ( variable ) {
const1 : { ... }
break ;
const2 : { ... }
break ;
...
default : { ... }
} ;
for ( init ; condition ;
modif ) { ... } ;
while ( condition ) { ... }
;
Les classes et les objets
Classe : Description
informatique des caractéristiques d'un objet abstrait (destiné à modéliser un objet
réel) -> description des constituants élémentaires de l'objet ainsi que des seules
opérations (méthodes) pouvant s'appliquer à cet objet.
Exemple :
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;
int getWeight() {
return(poids) ;
}
} |
Une classe Vehicule
sauvegardée dans une fichier Vehicule.java Quatre
"variables membre" : age, taille, poids et moteur
Une "fonction membre" ou méthode : getWeight
-> poids d'un véhicule |
Instance d'une classe : Objet
informatique concret généré à partir d'une classe (stocké dans une variable)
Utilisation de l'opérateur new pour
effectuer la création de l'objet
Vehicule v = new Vehicule() ;
Constructeur : Méthode spécifique
appelée automatiquement lors de l'instanciation d'un objet (identifiée par son nom :
celui de la classe et par le fait qu'il n'y a pas de type retourné)
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;
Vehicule() {
age = 0 ;
taille = 0.0F ;
poids = 0.0F ;
moteur = false ;
}
int getWeight() {
return(poids) ;
}
} |
Possibilité de définir un ou plusieurs
constructeurs avec paramètres en plus du constructeur mimimum
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;
Vehicule(int a,float t
,float p,boolean m) {
age = a ;
taille = t ;
poids = p ;
moteur = m ;
}
...
} |
...
Vehicule v = new Vehicule(2,4.6F,1.5F,true) ;
... |
static : Une variable
ou une fonction membre déclarée static dans une classe est commune à toute les
instances de cette classe. Une telle variable ou méthode yyy de la classe Xxxx pourra
être utilisée en faisant directement référence à Xxxx.yyy.
class Vehicule {
...
static float taxation ;
static final int type ;
static float Taxation() {
return(taxation) ;
}
...
} |
...
Vehicule.taxation = 100.0F ;
System.out.println(Vehicule.taxation()) ;
... |
instanceof : Test d'appartenance d'un objet à une classe par l'opérateur
instanceof
if ( donald instanceof Duck)
... |
L'encapsulation
Possibilité de limiter la
visibilité des variables et fonctions membres définies à l'intérieure des classes.
public : pas de limitation
protected : visible depuis
l'intérieur de la classe et depuis classes qui en héritent
private : visible uniquement
depuis intérieur de la classe
Exemple :
public
class Vehicule {
public float age ;
protected float taille ;
private int poids ;
private boolean moteur ;
public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}
public int getWeight() {
return(poids) ;
}
} |
La
déclaration public des classes elles-mêmes répond à un impératif de sécurité, par
une déclaration public elles seront rendues accessibles aux autres classes.
L'héritage
Possibilité de décrire
une nouvelle classe en la faisant hériter (dériver) d'une classe.
Exemple :
public class Voiture extends Vehicule {
public int places ;
public Voiture() {
moteur = true ;
places = 4 ;
}
} |
Important :
Impossibilité de faire dériver une classe de plus d'une autre classe
Important : Dérivation implicite de la
classe Object pour toute classe ne dérivant d'aucune classe
Le polymorphisme
Déclaration dans une
sous-classe A d'une méthode dont la signature est identique (nom, nombre et types
d'arguments) à celle d'une méthode de sa superclasse S
Les interfaces
Interface : Collection de noms de
méthodes sans définition
Indication qu'une classe implante
obligatoirement un modèle de comportement (des méthodes) en plus de ceux hérités de sa
superclasse
Compilation obligatoire des interfaces
Possibilité d'utilisation comme si elles
étaient des classes à la différence qu'elles ne peuvent servir à instancier des objets
-> utilisation des interfaces quand on désire indiquer directement des objets
implantant leurs comportements
Exemple :
interface
Moteur {
public int nombreSoupapes() ;
public float Cylindree() ;
} |
public classe V8 implements Moteur {
private int ns ;
private float cyl ; public V8(int ns,float c) {
ns = n ;
cyl = c ;
}
public int nombreSoupapes () {
return(ns) ;
}
public float Cylindree() ;
return(cyl) ;
}
public int rpmMax() {
return(7000) ;
}
} |
...
private void affichage(Moteur m) {
System.out.println(m.nombreSoupapes()) ;
System.out.println(m.Cylindree()) ;
}
...
...
V8 engine = new V8(32,3500) ;
System.out.println(engine.rpmMax()) ;
affichage((moteur) engine) ;
... |
L'API
JAVA de Sun
Utilisation
d'une directive d'importation import pour indiquer l'utilisation d'une classe existant
dans un des packages de l'API de Sun
Exemple :
Import
java.util.Vector ;
...
...
Vector v = new Vector() ;
v.addElement(new V8(32,3000)) ;
... |
Importation implicite de
toutes les classes du package java.lang -> pas d'import obligatoire pour ces classes
Les
exceptions
Production d'une exception
lorsqu'une erreur intervient dans un programme JAVA
Un programmeur devra obligatoirement
gérer les exceptions générées par ses programmes (instructions try et catch) pour
traiter les problèmes rencontrés au cours de l'exécution -> programmation de code
sans erreur.
Un programmeur pourra programmer des
classes générant des exceptions.
Exemple 1 : Gestion d'une exception
générée par une tentative d'instanciation d'un objet Float à partir de la chaîne
"abc" qui n'est pas une chaîne "numérique".
Try {
Float f = new Float("abc") ;
System.out.println(f) ; }
catch(NumberFormatException e) {
System.out.println(e) ; } |
Exemple 2 : Ecriture d'une classe
exception, écriture d'une méthode générant cette exception (Intanciation d'une
fraction avec un dénominateur égal à 0).
public class MyException extends Exception {
public String toString() {
return("Attention") ;
}
} |
public class Fraction {
private float a ;
private float b ;
public Fraction(float aa,float bb)
throws MyException {
if ( bb != 0 ) {
a = aa ;
b = bb ; }
else {
throw new MyException() ; }
}
public String toString() {
return(a+" sur "+b) ;
}
} |
try {
Fraction f = new Fraction(1.0F,0.0F) ;
System.out.println(f) ; }
catch(MyException e) {
System.out.println(e) ; }
|
|