TD3 - Les classes

Durée : 3h

Inès de Courchelle

Objectifs :

  • Créer sa première classe java
  • Comprendre la différence entre classe et objet
  • Utiliser un Constructeur
  • Manipuler les getters et les setters
  • Déployer la méthode finalize
  • Prendre en main un IDE - ECLIPSE

Attention :

L’ensemble des exercices ci-dessous ne seront pas tous corrigés en classes

IL FAUT ÊTRE SOUS UBUNTU

Exercice 1 : Eclipse

Si vous êtes à l’aise avec un autre IDE, alors pas de problème, MAIS c’est pas mon problème

L’objectif de cet exercice :

  • Mettre en place son environnement de travail
  • Coder en JAVA de manière plus sereine
  • Automatiser la génération de getters/setters et les constructeurs

L’IDE que nous allons utiliser est Eclipse (installer sous vos machines).

Attention plusieurs Eclipses sont installés sur votre machine. Il faut utiliser Eclipse Java.

  1. Sélectionner Eclipse Java
  2. Créer un workspace. Il vous suffit de sélectionner un répertoire où tous vos projets java seront enregistrés. Par défaut, il vous propose un répertoire appelé << workspace >>. Un exemple :

Vous pouvez avoir plusieurs workspace différents, il faut juste savoir où on en est !

Vous êtes ici !

Maintenant que Eclipse est bien lancé

  1. Créer un projet java dans le menu (tout en haut) file > new > java project
  1. Regarder les versions de Java (utiliser au minimun la version 11).
  2. Appuyer sur FINISH et ensuite, vous êtes là !
  3. Créer les classes vides suivantes (sans constructeurs, sans attributs …) :
    • Toto.java
    • Tata.java
Pour cela, clic droit sur votre projet dans package explorer. Puis new > class !

Si cela n’appararaît pas, farfouille l’ensemble des menus Eclipse (window > show view > package explorer )

Tu peux fouiller un peu !
  1. Créer la class contenant la méthode principale
  2. Rajouter à cette méthode principale la possibilité de demander :
  • Le nom de l’utilisateur
  • Combien d’objet toto il veut créer ?
  • Combien d’objet tata il veut créer ?

Cette méthode principale par la suite permet de créer le nombre d’objet toto et tata demandé par l’utilisateur.

  1. Pour compiler et exécuter votre projet, appuyer sur le triangle vert en haut !

Pour lire une entrée d’un utilisateur

import java.util.Scanner;

public static void main(String[] args){
    /* Instancier un objet de type Scanner */
    /* une bonne fois pour toutes */
    Scanner sc= new Scanner(System.in);

    /* pour une chaine de caractère */
    System.out.print("Entrer une chaîne de caractères : ");
    String str= sc.nextLine();
    System.out.print("L'utilisateur a écrit : "+ str);

    /* pour un entier */
    System.out.print("Entrer un entier : ");
    int a= sc.nextInt();
    System.out.print("L'utilisateur a écrit : "+ a);

    /* une fois qu'on a terminé d'écouter le scanner */
    sc.close();
}

Pour créer n objets toto/tata on peut stocker ces objets dans un tableau*

/* Créer un tableau de MonObjet*/
MonObjet[] tabObjets;
/* Instancier la taille du tableau */
/* ici, elle est de 3 */
tabObjets= new MonObjet[3];
/* On parcours le du tableau */
for (int i=0;i<3;i++) {
    /* on instancie un MonObjet à la case i du tableau */
    tabObjets[i] = new MonObjet();
}

Exercice 2 : Les constructeurs et les Getters/Setters

L’objectif de cet exercice est de comprendre la création d’un objet et la visibilité de ses attributs en dehors de la classe.

Nous considèrons la classe suivante :
  1. Créer un nouveau projet
  2. Coder la classe Personne
  3. Générer 3 constructeurs avec Eclipse
    • un constructeur vide
    • un constructeur partiel
    • un constructeur complet
  4. Créer la class main
    • Créer un objet 1 avec le constructeur vide
    • Ajouter une valeur pour un attribut. Ça marche pas pourquoi ?
    • Compiler et exécuter le projet
    • Créer un deuxième objet avec le constructeur partiel
    • Modifier un attribut. Ça marche pas pourquoi ?
    • Créer un troisième objet avec le constructeur complet
    • Modifier une valeur pour un attribut. Ça marche pas pourquoi ?
  5. Générer Getters/Setters pour chacun des attributs
  6. Créer un objet 1 avec le constructeur vide
    • Ajouter une valeur pour un attribut.
    • Compiler et exécuter le projet
    • Créer un deuxième objet avec le constructeur partiel
    • Modifier un attribut.
    • Créer un troisième objet avec le constructeur complet
    • Modifier une valeur pour un attribut.
  7. Créer un Jar clic droit sur le projet > export > Runnable jar File
  8. Exécuter le Jar (il faut ouvrir le terminal), et taper la commande
java -jar (chemin/)nomDujar.jar

Attention

Dans votre implémentation de la classe Personne, il doit d’abord y avoir les attributs puis les constructeurs puis les diverses opérations (getters/setters inclus)

Exercice 3 : Un peu de math

L’objectif de cet exercice est d’associer de l’algorithmique avec la programmation orientée objet.

Nous considérons la classe Point suivante :

Attention :

  • n’oublier pas le ou les constructeurs
  • n’oublier pas les getters + les setters
  1. Coder la classe Point
  2. Créer la classe principale
  3. Instancier les objets points suivants :
  4. Créer les 3 tableaux suivants :
Point[] rayon1={p1,p2}
Point[] rayon2={p3,p4}
Point[] rayon3={p1,p4}
  1. Dans la classe Main, calculer le périmetre si chacun de ces rayons appartennaient à un cercle. L’unité du repère orthonormé est 1cm. \[ tailleVecteur = \sqrt{(x_2−x_1)^2+(y_2−y_1)^2} \]
  2. Coder une opération qui calcul la distance d’un point courant avec un autre Point
public float distanceAvec(Point autrePoint);
  1. Re-calculer le périmetre dans la classe main, en utilisant la fonction distanceAvec

TIPS

  • Vous pouvez regarder la doc ici pour utiliser des méthodes et variables déjà existantes !
  • ATTENTION au type de retour et attendu par les méthodes et variables (regarder bien la doc)