Quelle est la différence entre public, protected, package-private et private en Java ?
Bonjour à tous ! Je viens de commencer à apprendre Java et je n'arrive pas à comprendre les modificateurs d'accès. J'ai l'impression de comprendre qu'ils contrôlent la visibilité des classes, méthodes et champs, mais en pratique, je me trompe constamment.
Par exemple, j'ai ce code :
public class Animal {
public String name;
protected int age;
String breed; // package-private
private String id;
public void makeSound() {
System.out.println("Some sound");
}
protected void sleep() {
System.out.println("Sleeping...");
}
void eat() {
System.out.println("Eating...");
}
private void breathe() {
System.out.println("Breathing...");
}
}
public class Dog extends Animal {
public void testAccess() {
name = "Buddy"; // accessible
age = 5; // accessible
breed = "Lab"; // accessible
// id = "123"; // PAS accessible - private
makeSound(); // accessible
}
} No answers yet.
Connectez-vous pour laisser une réponse