public、protected、包级私有和private在Java中的区别是什么?
大家好!我刚开始学习Java,一直搞不清楚访问修饰符。我大概明白它们控制类、方法和字段的可见性,但在实践中总是混淆。
例如,我有这样一段代码:
public class Animal {
public String name;
protected int age;
String breed; // 包级私有
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"; // 可访问
age = 5; // 可访问
breed = "Lab"; // 可访问
// id = "123"; // 不可访问 - private
makeSound(); // 可访问
sleep(); //