5.1 – Modificateurs d'accès
Quel est le niveau d'accès le plus permissif en Java ?
Quel est le niveau d'accès le plus restrictif en Java ?
Quel modificateur d'accès permet l'accès dans la classe, le même package et les sous-classes (même dans un autre package) ?
Quel est le niveau d'accès par défaut (sans modificateur) en Java ?
Quel est le résultat de ce code :
public class Personne {
private String nom;
public void setNom(String nom) {
this.nom = nom;
}
}
Personne p = new Personne();
p.nom = "Jean";
Quelles sont les portées d'accès du modificateur protected ?
Quand doit-on utiliser le modificateur private ?
Quel modificateur d'accès permet l'accès uniquement dans le même package ?
Quel est le résultat de ce code :
// Package com.monapp
public class Personne {
protected String nom;
}
// Package com.monapp.autre
public class Etudiant extends Personne {
public void afficher() {
System.out.println(nom); // Accès à nom
}
}
Quelle est la différence entre protected et package-private ?
5.2 – Encapsulation
Qu'est-ce que l'encapsulation en programmation orientée objet ?
Quels sont les deux principes de base de l'encapsulation ?
Quels sont les avantages de l'encapsulation ?
Quel est le problème principal avec les attributs publics ?
Quel est le résultat de ce code :
public class Personne {
private int age;
public void setAge(int age) {
if (age >= 0 && age <= 150) {
this.age = age;
} else {
System.out.println("Âge invalide !");
}
}
}
Personne p = new Personne();
p.setAge(-5);
Comment l'encapsulation améliore-t-elle la flexibilité du code ?
5.3 – Getters et setters
Qu'est-ce qu'un getter (accesseur) ?
Qu'est-ce qu'un setter (mutateur) ?
Quelle est la convention de nommage pour un getter d'un attribut nommé "age" ?
Quelle est la convention de nommage pour un setter d'un attribut nommé "nom" ?
Pour un attribut booléen nommé "actif", quelle convention peut-on utiliser pour le getter ?
Quel est le résultat de ce code :
public class Personne {
private String nom;
public String getNom() {
return nom;
}
public void setNom(String nom) {
if (nom != null && !nom.trim().isEmpty()) {
this.nom = nom;
}
}
}
Personne p = new Personne();
p.setNom("");
String n = p.getNom();
Quels sont les avantages des getters et setters ?
Comment créer un attribut en lecture seule (read-only) ?
5.4 – Mots-clés static et final
Que signifie le mot-clé static en Java ?
Quelle est la caractéristique d'une variable statique ?
Comment appelle-t-on une méthode statique ?
Quelles sont les restrictions des méthodes statiques ?
Que signifie le mot-clé final en Java ?
Qu'est-ce qu'une constante en Java ?
Quel est le résultat de ce code :
public class Personne {
static int nombrePersonnes = 0;
public Personne() {
nombrePersonnes++;
}
public static int getNombrePersonnes() {
return nombrePersonnes;
}
}
Personne p1 = new Personne();
Personne p2 = new Personne();
System.out.println(Personne.getNombrePersonnes());
Quel est le résultat de ce code :
public class Mathematiques {
public static final double PI = 3.14159;
}
// Tentative de modification
Mathematiques.PI = 3.14;
Qu'est-ce qu'une méthode finale (final method) ?
Qu'est-ce qu'une classe finale (final class) ?
Quelle est la convention de nommage pour les constantes en Java ?
Quelle est la différence entre static et final ?