QuadAleas

“faire une classe avec quatre fils de type objet, un constructeur qui affecte des valeur random() à des objets Double qui deviennent ces fils [avec des System.out.println des valeurs qu'il affecte], une méthode de lecture des valeurs des fils. Et une procédure test qui invoque cette classe et demande les valeurs pour vérifier que ça c'est bien passé. ”

import java.math.*;
import java.io.*;

public class QuadAleas {
Object NW, NE, SE,SW;
int niveau=1;
double x;
QuadAleas(){
	x=Math.random();
	System.out.println("NW="+x);
	NW = new Double(x);
	x=Math.random();
	System.out.println("NE="+x);
	NE = new Double(x);
	x=Math.random();
	System.out.println("SE="+x);
	SE = new Double(x);
	x=Math.random();
	System.out.println("SW="+x);
	SW = new Double(x);
}
}

Programme qui teste:

import java.io.*;

public class TestQuadAleas
{
  public static void main(String args[]){
QuadAleas q;
double x;
Double d;
double dv;
System.out.println("debut");
q=new QuadAleas();
System.out.println("q peut exister");
System.out.println("que vaut q.NE?");
System.out.println(((Double) q.NE).doubleValue());
System.out.println("que vaut q.NW?");
dv=((Double) q.NW).doubleValue();
System.out.println(dv);
System.out.println("que vaut q.SW?");
System.out.println(((Double) q.SW).doubleValue());
System.out.println("que vaut q.SE?");
System.out.println(((Double) q.SE).doubleValue());
d = (Double) q.NW;
}
}

Résultat au console :

debut
NW=0.6100332155732191
NE=0.24218663748775782
SE=0.011311275927148201
SW=0.9628320177972618
q peut exister
que vaut q.NE?
0.24218663748775782
que vaut q.NW?
0.6100332155732191
que vaut q.SW?
0.9628320177972618
que vaut q.SE?
0.011311275927148201

Deuxième fois (aléas différents?)

debut
NW=0.8002215519190667
NE=0.8639876457672263
SE=0.6765963324510199
SW=0.23393572355401193
q peut exister
que vaut q.NE?
0.8639876457672263
que vaut q.NW?
0.8002215519190667
que vaut q.SW?
0.23393572355401193
que vaut q.SE?
0.6765963324510199

Enseignements tirés de cette expérience:

1. Puisque les quartiers sont déclarés Object le cast (Double) dans

dv=((Double) q.NW).doubleValue();
et 
System.out.println(((Double) q.SE).doubleValue());

est indispensable pour avoir accès à la méthode .doubleValue().

2. Il n'a pas été nécessaire de rajouter une méthode lisValeur, la méthode fournie par Double a suffit.

Suite

La suite est dans QuadDble.

 
java/quad_aleas.txt · Dernière modification: 2009/08/06 20:45 (modification externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki