L'objectif est de modéliser la rencontre entre des humains et de faire évoluer une population. Pour cela, on va définir une hiérarchie simple de classes : Humain, Homme, Femme.
ATTENTION ! Les principes de la programmation objet devront être suivi au maximum, notamment en terme de réutilisation de code. Par exemple, dans le cas de méthodes de la classe Humain redéfinies dans les classe Homme et Femme, on s'efforcera, quand c'est possible, de ne pas réécrire totalement ces méthodes en appelant celle de la super classe.
Créer le fichier Humain.java
à partir du canevas suivant :
import java.io.*;
import java.util.*;
public class Humain {
protected static Random loto = new Random(Calendar.getInstance().getTimeInMillis());
protected int age;
protected int poids;
protected String nom;
protected int esperanceVie;
Humain(String nom) {
// a compléter
}
Humain(int age, int poids, String nom) {
// à compléter
}
void setNom(String nom) {
// à compléter
}
void setAge(int age) {
// à compléter
}
void setPoids(int poids) {
// à compléter
}
int getAge() {
// à compléter
}
int getPoids() {
// à compléter
}
String getNom() {
// à compléter
}
protected void setEsperanceVie() {
// à compléter
}
public void vieillir() {
// à compléter
}
public void grossir(int p) {
// à compléter
}
public boolean isDead() {
// à compléter
}
public void print() {
// à compléter
}
}
Pour compléter le code :
le premier constructeur prend en paramètre une variable de type String
et initialise les attributs age
à 0 et poids
à 3, le nom
avec la valeur de la variable, puis met à jour la valeur d'esperanceVie
à sa valeur moyenne pour un humain, à savoir 70 (cf. setEsperanceVie()
). Le deuxième constructeur fait la même chose mais permet d’initialiser l'âge et le poids à une valeur précise.
void vieillir()
incrémente de 1 l'âge.
void setEsperanceVie()
fixe l'espérance moyenne d'un Humain à 70 an.
void grossir(int p)
ajoute au poids
la valeur p
, sachant que p
peut être négatif.
boolean isDead()
renvoie true si age
> esperanceVie
.
void print()
affiche un message donnant la valeur des attributs.
Créer le fichier Femme.java
à partir du canevas suivant :
import java.io.*;
public class Femme extends Humain {
private int fertilite;
Femme(String nom) {
// à compléter
}
Femme(int age, int poids, String nom, int fertilite) {
// à compléter
}
int getFertilite() {
// à compléter
}
public void vieillir() {
// à compléter
if (age <= 20) poids = 3+(int)(2.6*age);
else if (age >= 50) poids += (age % 2);
}
public Humain rencontre (Homme h) {
// à compléter
}
protected void setEsperanceVie() {
// à compléter
}
}
Pour compléter le code :
private int fertilite
représente la chance d'avoir un bébé.String
appelle le constructeur de Humain
correspondant, puis met à 0 fertilite
. L'autre constructeur prend en paramètres quatre variables servant à initialiser les attributs en appelant le constructeur de Humain
correspondant.void setEsperanceVie()
fixe l'espérance moyenne d'une Femme entre 55 et 95 ans.