Préparation de l'environnement de développement
La première séance a été consacrée à l'installation des outils nécessaires au cycle de développement Java : le JDK (Kit de développement Java), l'EDI IntelliJ IDEA, l'éditeur Markdown Typora et le système de contrôle de version Git. Le JDK fournit la machine virtuelle, le compilateur et les bibliothèques standard indispensables à IntelliJ. Typora sert à rédiger de la documentation structurée. Git permet de versionner le code et de collaborer via des plateformes comme Gitee.
Prise en main de Typora et syntaxe Markdown
Typora est un éditeur WYSIWYG pour Markdown. Pour l'utiliser efficacement :
- Nouveau document : Fichier → Nouveau, puis Fichier → Enregistrer.
- Titres : Préfixer une ligne par
#répété de 1 à 6 fois selon le niveau. - Styles de texte :
**texte**ou__texte__pour le gras ;*texte*ou_texte_pour l'italique. - Listes :
-,*ou+pour une liste non ordonnée ; chiffre suivi d'un point pour une liste ordonnée. - Citation :
>suivi d'un espace. - Bloc de code : entourer le code de trois backticks, avec le nom du langage pour la coloration syntaxique.
- Lien et image :
[libellé](url)pour un lien ;pour une image.
Dans les préférences, il est utile d'activer la copie automatique des images dans un dossier local afin de centraliser les ressources du document. Les raccourcis courants sont Ctrl+B (gras), Ctrl+I (italique), Ctrl+K (lien) et Ctrl+Shift+I (image). L'export au format HTML, PDF ou Word se fait via Fichier → Exporter.
Fondamentaux de Git
Git repose sur trois zones : le répertoire de travail (working directory), la zone d'index (staging area) et le dépôt local (repository). Le dépôt distant (remote) permet la collaboration.
Commandes essentielles
# Effacer l'écran dans l'invite Windows
cls
# Se déplacer vers le bureau
cd Desktop/
# Cloner un dépôt existant
git clone https://adresse-du-depot.git
# Initialiser un nouveau dépôt Git
git init
# Ajouter tous les changements à l'index
git add .
# Valider les changements dans le dépôt local
git commit -m "message de validation"
# Vérifier l'état du dépôt
git status
Une configuration initiale correcte évite les erreurs d'identité :
git config --global user.name "VotreNom"
git config --global user.email "votre@email.com"
Workflow type pour publier un projet sur Gitee :
mkdir boutique_articles
cd boutique_articles
git init
echo "# boutique_articles" > README.md
git add README.md
git commit -m "première validation"
git remote add origin https://gitee.com/utilisateur/boutique_articles.git
git push -u origin main
L'option -u associe la branche locale main à la branche distante. Les envois ultérieurs se limitent alors à git push.
Commandes de base du terminal Windows
Le terminal Windows (cmd) partage certaines commandes avec les shells Unix. Les principales sont :
# Ouvrir le terminal
Win + R, taper cmd, valider
# Lister le contenu d'un dossier
dir
# Changer de répertoire
cd Desktop
cd / # racine du disque actuel
cd /d E: # changer de disque
cd .. # répertoire parent
# Créer un dossier
mkdir repertoire
md repertoire
# Créer un fichier vide
type nul > fichier.txt
# Copier, déplacer, renommer, supprimer
copy source.txt destination.txt
move fichier.txt repertoire/
ren ancien.txt nouveau.txt
del fichier.txt
# Outils divers
cls # effacer l'écran
notepad # lancer le Bloc-notes
ipconfig # afficher la configuration réseau
ping site.com # tester la connectivité
shutdown -s -t 0 # arrêter immédiatement l'ordinateur
Révision des bases de Java
Types de données
Java distingue les types primitfis, stockés dans la pile (stack), et les types référence, alloués dans le tas (heap).
- Types primitifs :
byte,short,int,long,float,double,char,boolean. - Types référence : tableaux, objets instanciés avec
new, classes personnalisées, fonctions/lambdas.
Encapsulation et classse POJO
package com.exemple.cours;
public class Creature {
private String nom;
private String genre;
public Creature() {
}
public Creature(String nom, String genre) {
this.nom = nom;
this.genre = genre;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
}
Dans IntelliJ, les accesseurs, mutateurs et constructeurs peuvent être générés automatiquement avec Alt+Insert (parfois Fn+Alt+Insert). Les raccourcis psvm et sout génèrent respectivement la méthode main et un affichage console.
Manipulation des tableaux
package com.exemple.cours;
import java.util.Scanner;
public class TableauExemple {
public static void main(String[] args) {
int[] valeurs = new int[5];
Scanner lecture = new Scanner(System.in);
for (int i = 0; i < valeurs.length; i++) {
System.out.println("Saisissez l'élément n°" + (i + 1));
valeurs[i] = lecture.nextInt();
}
System.out.println("Contenu du tableau :");
for (int valeur : valeurs) {
System.out.print(valeur + " ");
}
System.out.println();
int total = 0;
for (int valeur : valeurs) {
total += valeur;
}
System.out.println("Somme totale : " + total);
}
}
Déclaration et appel de méthodes
public class FonctionDemo {
public void afficherMessage() {
System.out.println("Méthode sans retour");
}
public void afficherCoordonnees(int abscisse, int ordonnee) {
System.out.println("X = " + abscisse + ", Y = " + ordonnee);
}
public String recupererTexte() {
return "Bonjour le monde";
}
public int additionner(int a, int b) {
return a + b;
}
public static void methodeStatique() {
System.out.println("Appel d'une méthode statique");
}
public static void main(String[] args) {
FonctionDemo demo = new FonctionDemo();
demo.afficherMessage();
demo.afficherCoordonnees(10, 20);
String texte = demo.recupererTexte();
System.out.println(texte);
int resultat = demo.additionner(100, 200);
System.out.println(resultat);
methodeStatique();
}
}
Surcharge (overload)
La surcharge autorise plusieurs méthodes portant le même nom, à condition que leur signature diffère.
public class SurchargeDemo {
public void afficherInfos() {
System.out.println("Affichage des informations");
}
public void afficherInfos(String prenom) {
System.out.println("Prénom : " + prenom);
}
public void afficherInfos(String prenom, int age) {
System.out.println("Prénom : " + prenom + ", Âge : " + age);
}
public static void main(String[] args) {
SurchargeDemo demo = new SurchargeDemo();
demo.afficherInfos();
demo.afficherInfos("Marie");
demo.afficherInfos("Marie", 21);
}
}
Réécriture (override)
Une sous-classe peut redéfinir une méthode héritée pour adapter son comportement. L'annotation @Override garantit qu'il s'agit bien d'une méthode existante dans la classe parente.
class Humain {
public void loisir() {
System.out.println("Aime lire des livres");
}
}
public class Eleve extends Humain {
@Override
public void loisir() {
super.loisir();
System.out.println("et aime aussi programmer en Java");
}
public static void main(String[] args) {
Eleve eleve = new Eleve();
eleve.loisir();
}
}