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

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

1. public(公共的)

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

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

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

2. private(私有的)

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

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

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

3. protected(受保护的)

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

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

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

4. 默认(无修饰符)

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

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

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

总结

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

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

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值