test25
This commit is contained in:
1
BUT1-Test-Public
Submodule
1
BUT1-Test-Public
Submodule
Submodule BUT1-Test-Public added at 7b3b5739aa
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,113 +0,0 @@
|
|||||||
// notez le s après Object. Permet entre autre de stipuler qu'un objet o n'est pas null avec la méthode Objects.requireNonNull(o, "message d'erreur détaillé");
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Sorte de Int du pauvre à laquelle on ajoute un nom sous forme textuelle.
|
|
||||||
*
|
|
||||||
* Classe donnée à titre d'exemple pour illustrer les ingrédients techniques de la prog défensive.
|
|
||||||
* et les assertions java
|
|
||||||
*/
|
|
||||||
public class MonInt {
|
|
||||||
|
|
||||||
// un entier
|
|
||||||
private int valeur ;
|
|
||||||
// son nom sous forme textuelle
|
|
||||||
private String nom ;
|
|
||||||
|
|
||||||
public MonInt(int n, String s){
|
|
||||||
this.valeur = n;
|
|
||||||
this.nom = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* division du pauvre.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param c le diviseur par lequel on souhaite diviser this
|
|
||||||
*/
|
|
||||||
public void divise (MonInt c){
|
|
||||||
Objects.requireNonNull(c, "la classe denominateur ne peut pas être null");
|
|
||||||
|
|
||||||
int avant = this.valeur;
|
|
||||||
|
|
||||||
this.valeur = this.valeur / c.getValeur();
|
|
||||||
this.nom = "(" + this.nom + " divisé par " + c.getNom() +")";
|
|
||||||
|
|
||||||
assert(this.valeur*c.getValeur() == avant); // NB. un assert qui ne marche pas tout le temps.
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Un getter superstitieux.
|
|
||||||
* retourne une exception si la valeur vaut 13.
|
|
||||||
*/
|
|
||||||
public int getValeur(){
|
|
||||||
if (valeur == 13) throw new IllegalStateException("Comme disait Sacha Guitry, je ne suis pas superstitieux mais on ne sait jamais.");
|
|
||||||
return valeur;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNom(){
|
|
||||||
return nom;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return String representant l'entier.
|
|
||||||
*/
|
|
||||||
public String toString(){
|
|
||||||
return this.getValeur() + " " + this.getNom();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* C'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe.
|
|
||||||
* C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests
|
|
||||||
* (vous pouvez rejouer les tests plus tard).
|
|
||||||
*
|
|
||||||
* Idéalement on utilise un outil dédié comme JUnit qui favorise au maximum cette automatisation.
|
|
||||||
*
|
|
||||||
* @param args pas de paramètre en ligne de commande prévu.
|
|
||||||
*/
|
|
||||||
public static void main(String[] args) {
|
|
||||||
MonInt c3 = new MonInt(3,"trois");
|
|
||||||
MonInt c4 = new MonInt(4,"quatre");
|
|
||||||
MonInt c9 = new MonInt(9,"neuf");
|
|
||||||
MonInt c13 = new MonInt(13,"treize");
|
|
||||||
System.out.println(c3.toString());
|
|
||||||
System.out.println(c4.toString());
|
|
||||||
System.out.println(c9.toString());
|
|
||||||
|
|
||||||
|
|
||||||
c9.divise(c3);
|
|
||||||
// 3
|
|
||||||
System.out.println(c9.toString());
|
|
||||||
|
|
||||||
c3.divise(c4);
|
|
||||||
// 0
|
|
||||||
System.out.println(c3.toString());
|
|
||||||
|
|
||||||
// tester des exceptions pas pratique
|
|
||||||
// Si on veut tester plusieurs exceptions
|
|
||||||
// il faut attraper et vérifier que c'est le bon type d'exception.
|
|
||||||
// ici manuellement en regardant le message.
|
|
||||||
try {
|
|
||||||
System.out.println(c13.toString()); // toucher au nbre 13 avec getValeur()
|
|
||||||
}
|
|
||||||
catch(Exception e){
|
|
||||||
System.out.println(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
try{
|
|
||||||
c9.divise(c3); //division par 0
|
|
||||||
}
|
|
||||||
catch(Exception e){
|
|
||||||
System.out.println(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
try{
|
|
||||||
c9.divise(null); //division par null
|
|
||||||
}
|
|
||||||
catch(Exception e){
|
|
||||||
System.out.println(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user