Bonjour tout le monde
Alors pour commencer j'ai deux classes
classe FamilleAnimaux
1 2 3 4 5 6 7 8 9 10 11
| class FamilleAnimaux {
private NF : string = "";
public set NomFamille(NomFamille : string) {
this.NF = NomFamille;
}
public get NomFamille(): string {
return this.NF;
}
} |
et classe Animal
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 29 30 31 32 33 34 35
| export class Animal extends FamilleAnimaux {
private Deplacement: string = "";
private voix: boolean = true;
private Couverture: string = "";
constructor (){
super();
this.voix = true;
if (this.NomFamille = "") {
throw new Error("Vous devez renseigner cet attribut.")
}
}
public set SeDeplace(sd : string) {
this.Deplacement = sd;
}
public set EmetUneVoix(v : boolean) {
this.voix = v;
}
public set Couvert(c : string) {
this.Couverture = c;
}
public get Couvert() {
return this.Couverture;
}
public son(nbr: any): void {
for (let i = 0; i <= nbr; i++) {
console.log("aucun!");
}
}
} |
à l'exécution du code qui suit
1 2 3 4 5 6 7 8 9 10
| A = new Animal();
// nom de famille
public nf: string = this.A.NomFamille="";
// comment se déplace-t-il ?
public sd : string = this.A.SeDeplace="Marchant";
// a-t-il une voix ou pas ?
v : boolean = this.A.EmetUneVoix;
public vx = this.v ? "Cet animal a une voix" : "cet animal n'a pas de voix.";
// emet des sons
this.A.son(3); |
j'ai quelques problèmes :
Premier problème
même si
private voix: boolean = true;
à l'exécution de
v : boolean = this.A.EmetUneVoix;
j'ai le message
"cet animal n'a pas de voix."
alors qu'à mon sens et puisque voix est par défaut true je dois avoir le message Deuxième problème
l'autre problème est que que mon constructeur n'exécute jamais la partie throw même si NomFamille !
Troisimè problème
le dernier problème est que son provoque une erreur de compilation pourtant il me parait que la fonction est typiquement correct
J'attire votre attention que c'est mon premier essai donc possible que j'ai dis un tas de bétises.
merci par avance.
Partager