当前位置:   article > 正文

Java 中的访问修饰符及其适用范围

Java 中的访问修饰符及其适用范围

访问修饰符就像是房子的门牌号或者门锁,它们决定了谁能进哪个房间、能看哪些东西。这些修饰符控制着类、变量、方法的可见性和可访问性,确保了代码的安全性、封装性和组织性。对于初级Java工程师来说,掌握这些访问修饰符就像是掌握了一张进入Java编程深层次世界的地图。接下来,我们就用轻松的方式,带你探索Java的四大访问修饰符以及它们的适用范围。

1. public(公共的)

想象你家开了一间店铺,门口挂着大大的“欢迎光临”招牌。这就像是Java中的public访问修饰符。当一个类、方法或变量被标记为public时,意味着任何人都可以从任何地方访问它,无论是同一个包内还是不同包里。它是最开放的访问级别,相当于没有任何限制的大门。

  1. 1public class WelcomeShop {
  2. 2 public String greeting = "欢迎光临!";
  3. 3
  4. 4 public void sayHello() {
  5. 5 System.out.println(greeting);
  6. 6 }
  7. 7}

在这个例子中,无论谁都可以访问WelcomeShop类、它的greeting变量和sayHello方法。

2. private(私有的)

现在,想象你有一个私人日记本,藏在只有你知道的秘密抽屉里。private访问修饰符就像是这个抽屉的锁,只允许你自己查看和修改。当一个成员(变量或方法)被声明为private时,它只能被同一类内的代码访问,对外界完全保密。

  1. 1class SecretDiary {
  2. 2 private String entry = "今天的心情...";
  3. 3
  4. 4 private void addEntry(String text) {
  5. 5 entry += "\n" + text;
  6. 6 }
  7. 7}

在这个例子中,entry变量和addEntry方法都是私有的,只有SecretDiary类自己才能访问它们。

3. protected(受保护的)

有时候,你可能想让家人也能查看你的某些物品,但不希望邻居们看到。protected访问修饰符就像是给家庭成员的特别通行证。它允许同一个包内的类以及所有子类访问该成员,但对其他包的类则不可见。

  1. 1class FamilyTreasure {
  2. 2 protected String history = "家族的历史...";
  3. 3
  4. 4 protected void shareHistory() {
  5. 5 System.out.println(history);
  6. 6 }
  7. 7}
  8. 8
  9. 9class Descendant extends FamilyTreasure {
  10. 10 void learnAboutPast() {
  11. 11 shareHistory(); // 子类可以访问protected方法
  12. 12 }
  13. 13}

在上面的例子中,虽然FamilyTreasure类的historyshareHistory方法是protected的,但Descendant作为子类,仍然可以访问它们。

4. 默认(无修饰符)

最后,如果我们不写任何访问修饰符,比如定义一个类或者类的成员时,它就具有默认的访问级别。这就好比你家的后院,没有明确标示“禁止入内”,但一般情况下外人也不会随便进来。默认访问级别只允许同一个包内的类访问,对外部世界来说是不可见的。

  1. 1class Backyard {
  2. 2 String flower = "玫瑰";
  3. 3
  4. 4 void waterPlants() {
  5. 5 System.out.println("给" + flower + "浇水...");
  6. 6 }
  7. 7}
  8. 8
  9. 9class Neighbor {
  10. 10 // 不能直接访问Backyard的成员
  11. 11}
  12. 12
  13. 13class HouseMate {
  14. 14 void takeCareOfGarden() {
  15. 15 Backyard yard = new Backyard();
  16. 16 yard.waterPlants(); // 同一包内的类可以访问
  17. 17 }
  18. 18}

在这个例子中,Backyard类的flower变量和waterPlants方法没有明确的访问修饰符,因此它们只能被同包内的HouseMate类访问,而外部的Neighbor类则不行。

总结

  • public就像是开放的公园,对所有人开放。
  • private好比你的私人日记,只有你能看。
  • protected则是家庭相册,家人和继承者可以看到。
  • 而默认访问级别,则像是一扇未上锁的后门,只对同在一个包的“家人”开放。

合理使用这些访问修饰符,可以帮助你构建更加安全、模块化和易于维护的代码。就像管理家中的物品一样,通过设置合适的访问权限,让每个部分各司其职,既保护了隐私,又促进了内部的合作与协调。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/769339
推荐阅读
相关标签
  

闽ICP备14008679号