Module I5 – Java Corrigé TP3 RT
II – Organisation du programme
2.1 - Séparation classe et main
public class ProgTest { // Cette classe ne contient que main
public static void main(String [] arg) {
Point P1=new Point("P1",11,12);
...
}
}
class Point { // Classe idem précédente sauf main
int x,y;
...
public static void main(String [] arg) {
System.out.println("Execution du main de la clsse Point");
}
}
–Le fichier doit avoir le même nom que la classe publique, donc "ProgTest"
–Une seule classe peut être déclarée en publique dans un fichier
–Même si la classe ProgTest n'est pas déclarée publique, le fonctionnement reste identique
–Si l'on inverse l'ordre des classe, on s'aperçoit que le main exécuté appartient à la classe déclarée en
premier
2.2 – Constructeurs
L'ajout de la ligne d'affichage (System.out.println...) dans les constructeurs, permet d'obtenir
à l'écran l'affichage d'un message chaque fois qu'un constructeur est appelé.
Dans le programme demandé ici, le résultat affiché sera le suivant :
Ligne de code Message affiché
Ligne 1 => Contructeur "Point(String,int,int)" : création de l'objet P1
Ligne 2 => Contructeur "Point(Point)" : création de l'objet P2
Ligne 4 => Contructeur "Point()" : création de l'objet P3
Ligne 6 => Contructeur "Point()" : création de l'objet ?
A la ligne 6, le constructeur "Point()" est appelé pour la création d'un objet temporaire utilisé dans
la méthode "copiePoint".
Remarque : La ligne 5 ne génère aucun appel au constructeur (pas de réservation d'espace mémoire);
IUT Elbeuf 2 / 4 S.H.