- Pour l'ensemble des TDs, vous créerez un compte individuel sur github si vous n'en possédez pas déjà un.
Vous nommerez ce compte de la façon suivante:
uvsq<MonNuméroÉtudiant>
. Par exemple, pour un étudiant de numéro 21601234, le compte serauvsq21601234
. - Les commandes
git
sont à taper en ligne de commande dans un shell. - Vous pouvez utiliser l'IDE de votre choix. Sur le cartable numérique, Eclipse, IntelliJ IDEA et Visual Studio Code sont installés.
- Vous répondrez aux questions directement dans ce fichier en complétant les emplacements correspondants.
Ajoutez ensuite ce fichier au dépôt
git
.
Dans cet exercice, vous créerez une classe Fraction
représentant un nombre rationnel et une classe Main
qui testera les méthodes de la classe Fraction
avec des assertions (cf. Utilisation d'assertions).
À chaque étape, consultez le statut des fichiers du projet (git status
) ainsi que l'historique (git log
).
-
Sur la forge, créez le dépôt (repository)
SimpleFraction
; En terme de commits, quelle différence constatez-vous entre cocher une (ou plusieurs) des cases Initialize this repository with et n'en cocher aucune ?Répondre ici
Pour la suite, ne cochez aucune de ces cases.
-
Localement, configurez
git
avec votre nom (user.name
) et votre email (user.email
) (cf. Personnalisation de Git);# Répondre ici
-
Initialisez le dépôt
git
local pour le projet (cf. Démarrer un dépôt Git);# Répondre ici
-
Dans votre IDE, créez la classe
Fraction
(vide pour le moment) et la classeMain
(avec un simple affichage) dans le projet (cf. Méthodemain
); Vérifiez que le projet compile et s'exécute dans l'IDE; Validez les changements (cf. Enregistrer des modifications dans le dépôt);# Commandes pour valider les changements
-
Ajoutez la méthode
toString
à la classeFraction
(cf.Object.toString
) qui retournera la chaîne"Je suis une fraction."
et modifiez la classeMain
en conséquence; Validez les changements;// Code pour tester toString
-
Publiez vos modifications sur le dépôt distant (cf. Travailler avec des dépôts distants); Vous utiliserez le protocole
https
pour cela; Vérifiez avec le navigateur;# Commandes pour publier les modifications
-
Sur la forge, ajoutez un fichier de documentation
README.md
. Quelle syntaxe est utilisée pour ce fichier ?Répondre ici
-
Récupérez localement les modifications effectuées sur la forge.
# Répondre ici
-
Ajoutez les répertoires et fichiers issus de la compilation aux fichiers ignorés par
git
(cf..gitignore
pour Java);# Copier ici le contenu de `.gitignore`
-
Retirez les fichiers de configuration de l'IDE du projet;
# Répondre ici
Ajoutez-les aux fichiers ignorés par
git
.# Copier ici les modifications de `.gitignore`
-
Configurez l'accès par clé publique/clé privée à la forge (cf. Connecting to GitHub with SSH).
Expliquez la procédure de façon synthétique
Dans cet partie, vous compléterez les classes Fraction
et Main
.
Un exemple d'interface pour une telle classe est donné par la classe Fraction
de la bibliothèque Apache Commons Math.
Vous respecterez les consignes ci-dessous :
- chaque méthode de
Fraction
sera testée dansMain
avec des assertions (cf. Utilisation d'assertions); - à la fin de chaque question, consultez le statut des fichiers du projet (
git status
) ainsi que l'historique (git log
) puis validez les changements.
- Ajoutez les attributs représentants le numérateur et le dénominateur (nombres entiers).
// Déclaration des attributs
- Ajoutez les constructeurs (cf. Constructor Declarations) suivants :
- initialisation avec un numérateur et un dénominateur,
- initialisation avec juste le numérateur (dénominateur égal à 1),
- initialisation sans argument (numérateur égal 0 et dénominateur égal à 1),
// Assertions pour tester les constructeurs (avec toString)
- Ajoutez les fractions constantes ZERO (0, 1) et UN (1, 1) (cf. Constants in Java),
// Déclaration des constantes
- Ajoutez une méthode de consultation du numérateur et du dénominateur (par convention, en Java, une méthode retournant la valeur de l'attribut
anAttribute
est nomméegetAnAttribute
),// Définition des getters
- Ajoutez une méthode de consultation de la valeur sous la forme d'un nombre en virgule flottante (méthode
doubleValue()
) (cf.java.lang.Number
),// Assertions pour tester la conversion
- Ajoutez une méthode permettant l'addition de deux fractions (la méthode
add
prend en paramètre une fraction et retourne la somme de la fraction courante et du paramètre),// Assertions pour tester l'addition
- Ajoutez le test d'égalité entre fractions (deux fractions sont égales si elles représentent la même fraction réduite) (cf.
java.lang.Object.equals
),// Assertions pour tester l'égalité
- Ajoutez la comparaison de fractions selon l'ordre naturel (cf.
java.lang.Comparable
).// Assertions pour tester la comparaison
- Faites hériter votre classe
Fraction
de la classejava.lang.Number
et complétez les méthodes// Vérifiez avec le code ci-dessous Number aNumber = java.math.BigDecimal.ONE; Number anotherNumber = new Fraction(1, 2); assert java.lang.Math.abs(aNumber.doubleValue() + anotherNumber.doubleValue() - 1.5) < 1E-8;
L'objectif de cet exercice est de vous faire réviser/découvrir les commandes de base du shell de votre machine. Vous pouvez répondre en utilisant le shell de votre choix (bash, Powershell, …). Pour répondre à ces questions, vous devez effectuer les recherches documentaires adéquates (livre, web, …).
- Quel OS et quel shell de commande utilisez-vous ?
Répondre ici
- Quelle commande permet d'obtenir de l'aide ?
Donnez un exemple.
# Répondre ici
- Donnez la ou les commandes shell permettant de
- afficher les fichiers d'un répertoire triés par taille (taille affichée lisiblement)
# Répondre ici
- compter le nombre de ligne d'un fichier
# Répondre ici
- afficher les lignes du fichier
Main.java
contenant la chaîneuneVariable
# Répondre ici
- afficher récursivement les fichiers
.java
contenant la chaîneuneVariable
# Répondre ici
- trouver les fichiers (pas les répertoires) nommés
README.md
dans une arborescence de répertoires# Répondre ici
- afficher les différences entre deux fichiers textes
# Répondre ici
- afficher les fichiers d'un répertoire triés par taille (taille affichée lisiblement)
- Expliquez en une ou deux phrases le rôle de ces commandes et dans quel contexte elles peuvent être utiles pour un développeur.
Dans cet exercice, vous expliquerez en quelques phrases comment vous réalisez les actions ci-dessous dans votre IDE. Vous pouvez choisir l'IDE/éditeur de texte de votre choix. Pour réaliser cette exercice, vous devez bien évidemment vous reporter à la documentations de l'IDE (IntelliJ IDEA, Visual Studio Code, Eclipse, …).
-
Quels IDE ou éditeurs de texte utilisez-vous pour le développement Java ?
Répondre ici
Pour la suite, ne considérez que l'un de vos choix.
-
Comment vérifier/définir que l'encodage utilisé est UTF-8 ?
Répondre ici
-
Comment choisir le JDK à utiliser dans un projet ?
Répondre ici
-
Comment préciser la version Java des sources dans un projet ?
Répondre ici
-
Comment ajouter une bibliothèque externe dans un projet ?
Répondre ici
-
Comment reformater un fichier source Java ?
Répondre ici
-
Comment trouver la déclaration d'une variable ou méthode ?
Répondre ici
-
Comment insérer un bloc de code prédéfini (snippet) ?
Répondre ici
-
Comment renommer une classe dans l'ensemble du projet ?
Répondre ici
-
Comment exécuter le programme en lui passant un paramètre en ligne de commande ?
Répondre ici
-
Comment déboguer le programme en visualisant le contenu d'une ou plusieurs variables ?
Répondre ici
-
Quels paramètres ou fonctionnalités vous semblent particulièrement importants/utiles pour le développement Java ?
Répondre ici