public、protected、包级私有(default)和 private 在 Java 中的区别
大家好!我刚开始学习 Java,一直搞不懂访问修饰符。虽然读过理论,但在实践中总是混淆什么时候用 `public`,什么时候用 `private`。
例如,我有这样的代码:
```java
public class Animal {
public String name = "Unknown";
protected int age = 5;
String breed = "Mixed"; // 包级私有
private String id = "A123";
public void showInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Breed: " + breed);
System.out.println("ID: " + id);
}
}
```
在同一个包的其他类中,我可以访问 `name`、`age` 和 `breed`,但不能访问 `id`。如果我在另一个包中创建子类,则只能使用 `name` 和 `age`。为什么会这样?"包级私有"到底是什么意思?在实际项目中应该何时使用哪个修饰符?
请用简单的语言和例子解释一下。提前谢谢!