interface
Veh_a_moteur
{
int PUISSFISCALE = 1; // Par défaut, c’est static et
final
int PUISSREELLE = 2;
public int rendPuissance(int
i); // Par
défaut, c’est abstract
public float rendConso();
}
interface
Veh_flottant
{
public float rendTirantEau();
}
public class
Bateau_a_moteur implements Veh_a_moteur, Veh_flottant,
Comparable
{
private int
puissFiscale;
private int puissReelle;
private float conso;
private float tirantEau;
private float longueur;
public int compareTo(Object o)
{
if (this.longueur < ((Bateau_a_moteur)o).longueur)
{
return -1;
}
else
{
if (this.longueur == ((Bateau_a_moteur)o).longueur)
{
return 0;
}
else
{
return 1;
}
}
public Bateau_a_moteur (int pf, int pr, float c, float t, float
l)
{
puissFiscale = pf;
puissReelle = pr;
conso = c;
tirantEau = t;
longueur=l;
}
public int rendPuissance(int i)
{
return (i==PUISSFISCALE ? puissFiscale : puissReelle);
}
public float rendConso()
{
return conso;
}
public float rendTirantEau()
{
return tirantEau;
}
public float rendLongueur()
{
return longueur;
}
public void affich()
{
System.out.println ("Puissance fiscale : " +
rendPuissance(1)); //On
peut
// bien sûr utiliser directement la donnée
System.out.println ("Puissance réelle : " +
rendPuissance(2));
System.out.println ("Consommation : " +
conso);
System.out.println ("Tirant d'eau : " +
tirantEau);
System.out.println ("Longueur : " +
longueur);
}
}
public class
Test_Bateau_a_moteur
{
public static void main (String liste[])
{
Bateau_a_moteur b = new Bateau_a_moteur(7,50,30F,1.5F,13F);
b.affich();
System.out.println ("\n");
Bateau_a_moteur b2 = new Bateau_a_moteur(7,50,30F,1.5F,11F);
b2.affich();
System.out.println ("\n");
int res = b.compareTo(b2);
String mess;
if (res==1)
{
mess="Le 1er bateau est plus long que le second";
}
else
{
if (res==0)
{
mess="Les 2 bateaux ont la même longueur";
}
else
{
mess="Le second bateau est plus long que le 1er";
}
}
}
}