Structure_de_programme
Dans un programme Java, chaque service est une classe. Une classe gère par exemple les utilisateurs, une autre les calculs, une troisième le travail avec les fichiers, etc
Pour un projet, on retrouve généralement cette structure:
Main.java: contient le point d’entrée du programmeUser.java: service où sont stockées et traitées les données utilisateursCalculator.java: service des calculsFileHelper.java: service des fichiers
Classe
Java est un langage orienté object, et tout est objet. Les types d’objets s’appellent des classes.
Une classe est une “boîte” où l’on vient ranger des variables, des méthodes.
class Example
{
// Ici se trouveront nos outils : variables et méthodes
}Les classes contiennent généralement des variables et des fonctions.
Les variables sont appelé des champs et les fonction des méthodes.
Dans l’instruction :
System.out.println();System: est une classe qui contient des méthodes pour travailler avec le systèmeout: c’est un champ qui est un objet de la classePrintStreamprintln: c’est une méthode de la classePrintStreamqui affiche du texte à l’écran
Méthode main()
Le programme minimal en Java ressemble à ceci :
class Program
{
public static void main(String[] args)
{
// Votre code ici
}
}Il contient au minimum une classe, qui doit définir une méthode main().
Avec Java 21, il est possible d’écrire la méthode main()de manière abrégée. Le compilateur se charge de la transforme en bonne méthode.
void main()
{
Scanner console = new Scanner(System.in);
int age = console.nextInt();
System.out.println("Âge : " + age);
}Classe classique
public class MathUtils
{
// Variables statiques (globales pour la classe)
static final double PI = 3.14159;
static int callCounter = 0;
// Méthode statique : calcul de l’aire d’un cercle
public static double circleArea(double radius)
{
callCounter++;
return PI * radius * radius;
}
// Méthode statique : trouver le maximum de deux nombres
public static int max(int a, int b)
{
callCounter++;
return (a > b) ? a : b;
}
// Méthode statique : combien de fois les méthodes ont été appelées
public static int getCallCount()
{
return callCounter;
}
// Accès aux champs et méthodes depuis la méthode main()
public static void main(String[] args)
{
System.out.println("Aire du cercle : " + circleArea(5));
System.out.println("Maximum : " + max(10, 42));
System.out.println("Les méthodes ont été appelées " + getCallCount() + " fois");
}
}- une classe peut avoir plusieurs méthodes
- une classe peut avoir plusieurs variables
- les méthodes d’une classe peuvent s’appeler entre elles
- les méthodes d’une classe peuvent accéder à des variables communes
- Avant chaque méthode, on retrouve la portée
Champs - mémoire d’une classe
Dans une classe, on retrouve des variables, appelé champs (field). Ils permettent de stocker des valeurs.
public class MathUtils
{
// Variables statiques (globales pour la classe)
static final double PI = 3.14159;
static int callCounter = 0;
}Les champs permettent à la classe de se souvenir de quelque chose entre différents appels de méthodes.
Méthodes - actions d’une classe
Les méthodes sont les compétences d’une classe. Si la classe est un employée, les méthodes sont ses savoir faire.
- afficher quelque chose à l’écran
- calculer la somme de deux nombres
- recevoir des données en entrée et retourner un résultat
public class MathUtils
{
// Méthode statique : calcul de l’aire d’un cercle
public static double circleArea(double radius)
{
callCounter++;
return PI * radius * radius;
}
// Méthode statique : trouver le maximum de deux nombres
public static int max(int a, int b)
{
callCounter++;
return (a > b) ? a : b;
}
}Modificateur d’accès
On peut définit quelles parties d’une classes est accessibles depuis d’autres classes. On utilise les modificateurs d’accès.
public: visible par tous. ces méthodes et champs peuvent être utilisés/appelés depuis n’importe où dans le programmeprivate: visible uniquement depuis l’intérieur de la classe. Ce sont les détails internes qui ne doivent pas être accessibles aux autres.
public class MathUtils
{
// Variables statiques (globales pour la classe)
private static final double PI = 3.14159;
private static int callCounter = 0;
// Méthode statique : calcul de l’aire d’un cercle
public static double circleArea(double radius)
{
callCounter++;
return PI * radius * radius;
}
}Bonne pratique: on passe les champs en private, et on expose uniquement les méthodes nécessaire avec public.
Méthodes et variables statique
Une classe est utilisée comme modèle pour créeer des objets. On écrit la classe, puis on créer des objets issue de cette classe avec new. On peut ensuite appeler des méthodes sur ces objets.
Il existe un deuxième cas d’usage d’une classe: un conteneur de variables et méthodes globales, que l’on peut appeler depuis n’importe où dans le programme. C’est ce que permet static. Il indique au compilateur que les méthodes et les champs sont rattaché à la classe elle-même. On peut les utiliser sans créer un objet.
Integer.parseInt(); // Méthode statique parseInt() de la classe Integer
String.valueOf(); // Méthode statique valueOf() de la classe String
Double.isInfinite(); // Méthode statique isInfinite() de la classe Double
Arrays.copy(); // Méthode statique copy() de la classe ArraysLa méthode main()est toujours déclarée statique, l’exécution du programme commence par elle, avant toute création d’objet.
psvmpermet de créer une méthode main()avec l’ide