next up previous
suivant: Surcharge monter: Programmes Java illustrant le précédent: Les types référence

Conversion de type explicite

Le premier exemple est un cas d'affectation incorrecte, qui ne peut pas se compiler. C'est dans ce genre de cas qu'il faut utiliser une conversion de type.

Cast0.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Cast0{
    
public static void main(String[] argv){
  
Compteur c= new CompteurAPas(3);
  c.incremente
();
  CompteurAPas cap = c;
  System.out.println
(c.valeur());
    
}
}

class Compteur{
    
protected int x = 0;
    
void incremente(){
  
x = x+1;
    
}
    
int valeur(){
  
return x;
    
}
}

class CompteurAPas extends Compteur{
    
protected int pas;
    CompteurAPas 
(int p){
  
pas = p;
    
}
    
void incremente(){
  
x = x+pas;
    
}
}
Java2html

Le second exemple reprend l'exemple en réalisant la conversion qui s'impose. Ce programme compile et s'exécute correctement.

Cast1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Cast1{
    
public static void main(String[] argv){
  
Compteur c= new CompteurAPas(3);
  c.incremente
();
  CompteurAPas cap = 
(CompteurAPasc;
  System.out.println
(c.valeur());
    
}
}

class Compteur{
    
protected int x = 0;
    
void incremente(){
  
x = x+1;
    
}
    
int valeur(){
  
return x;
    
}
}

class CompteurAPas extends Compteur{
    
protected int pas;
    CompteurAPas 
(int p){
  
pas = p;
    
}
    
void incremente(){
  
x = x+pas;
    
}
}
Java2html

Le dernier exemple est un cas intermédiaire: une conversion explicite légale, mais qu'il n'est pas possible d'exécuter. Ce programme ce compile, mais l'exécution se termine par une erreur.

Cast2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Cast2{
    
public static void main(String[] argv){
  
Compteur c= new Compteur();
  c.incremente
();
  CompteurAPas cap = 
(CompteurAPasc;
  System.out.println
(c.valeur());
    
}
}

class Compteur{
    
protected int x = 0;
    
void incremente(){
  
x = x+1;
    
}
    
int valeur(){
  
return x;
    
}
}

class CompteurAPas extends Compteur{
    
protected int pas;
    CompteurAPas 
(int p){
  
pas = p;
    
}
    
void incremente(){
  
x = x+pas;
    
}
}
Java2html



Barthelemy Francois 2003-03-03